-1

Mininimum (MIN_STOCK)このコードが実行さMaximum (Stock MAX_STOCK1)れない>quantityのはなぜQTY_IHND1ですか(COMM_NUM)

If DCount(QTY_IHND1, "Stores_Table") = 0 Then
    QTY_IHND1 = 0

ElseIf DCount(QTY_IHND1, "Stores_Table") > 1 Then
     QTY_IHND1 = DLast("QTY_IHND1", "Stores_Table", "COMM_NUM = [COMM_NUM]") _
          + ((SubStoresTable.Form!QTY_RECVD) - (SubStoresTable.Form!QTY_ISSUE))
Else
     QTY_IHND1 = 0
End If

Forms!Pharmacytally.Controls("QTY_IHND1").Value = QTY_IHND1
MAX_STOCK1 = DMin("QTY_IHND1", "Stores_Table", "COMM_NUM" = [COMM_NUM])
Forms!Pharmacytally.Controls("MAX_STOCK1").Value = MAX_STOCK1
MIN_STOCK1 = DMin("QTY_IHND1", "Stores_Table", "COMM_NUM" = [COMM_NUM])
Forms!Pharmacytally.Controls("MIN_STOCK1").Value = MIN_STOCK1
4

1 に答える 1

0

タイトルのサブフォーム部分がどこで問題になるのかわかりません。ここにMVPサイトからの記事があります。

あなたは間違った場所に同等のものを持っています。

 MAX_STOCK1 = DMin("QTY_IHND1", "Stores_Table", "COMM_NUM =" & [COMM_NUM])

COMM_NUMは数値である必要があります。そうでない場合は、引用符が必要です。

コードセクション全体は良くなく、手直しで行うことができます。例えば:

DCount(QTY_IHND1, "Stores_Table")

これは、storesテーブルが完全に空であるかどうかについてのかなり奇妙なチェックのようです。また、QTY_IHND1は引用符で囲まれていません。

DLast("QTY_IHND1", "Stores_Table", "COMM_NUM = [COMM_NUM]"

Comm_Numは常にそれ自体と同じです。

さらに、ルックアップが非常に多いので、レコードセットを使用した方がよいでしょう。

次に、最後のものがあります。最後は、シングルユーザーシステムを除いて値を取得するための非常に悪い方法です。それでも、シングルユーザーのままではない可能性があることを考慮する必要があります。

コントロールを取得するためにコントロールプロパティを参照する必要はありません。

Forms!Pharmacytally.Controls("QTY_IHND1")

コントロールはフォームのプロパティになります。

Forms!Pharmacytally.QTY_IHND1

または

Forms!Pharmacytally!QTY_IHND1

または、コードがPharmacytallyフォームで実行されている場合は、

Me.QTY_IHND1

これにより、インテリセンスを利用できるようになります。

コメントを編集

MySubformControlという名前のメインフォームとサブフォームコントロールからの作業

 MyQty = Me.MySubformControl.Form.QTY_RECVD

MySubformControlはサブフォームコントロールの名前であり、含まれているフォームではないことに注意してください。

于 2012-12-20T09:54:08.083 に答える