0

ユーザーがクエリで使用される一連のデータを入力できるように、MS Access 2010 データベースを作成しています。

「Entry」という名前のメイン フォームと、「SubEntry」という名前の境界付きサブフォームがあります (入力されたレコードを表示するために使用されます)。メイン フォーム (エントリ) は、ユーザーが次のような値を入力できるようにするテキスト/コンボ ボックス コントロールで構成されます。

**Controls       ControlSource**

Date             "Entered by the user"
CompanyID        "Entered by the user"
TicketID         "Entered by the user"
TicketPrice      "Automatic retrieved by a query based on the entered 'Date' and 'TicketID' "
Pieces           "Entered by the user"
TotalPrice       "TicketPrice * Pieces"
CorrectedPrice   "Entered by the User"
Revenue          "=IIf([CorrectPrice]=0,[TotalPrice],[CorrectPrice])"

これは、レコードセットの入力と表示でうまく機能します。しかし問題は、ユーザーがレコードセットをサブフォームに追加する最初の段階で、正確な「収益」値がサブフォームの「収益」フィールドに追加されることです。しかしその後、ユーザーがサブフォームをスクロールしてレコードセット (メイン フォームのそれぞれのコントロールに表示される) を選択し、値を変更すると、. たとえば、別の ticketID または Date を選択すると、メイン フォームの "Revenue" 値が変更されますが、サブフォームの Revenue フィールドは更新されません。一方、メインフォームに加えられたその他の変更は、サブフォームで自動的に更新されますが、「収益」値は更新されません。

私は MS Access や VBA に精通しているわけではありません。SubEntry の "Revenue" フィールドを処理して、サブフォームの他のフィールドと同様に自動的に更新する方法。

お時間とご協力いただきありがとうございます。

4

1 に答える 1

0

テキストボックスをサブフォームの関連フィールドに関連付ける必要があるため、次のようになります。

txtEinnahme
ControlSource: KorrEinahme

次に、計算を追加するコードが必要です。たとえば、次のようになります。

Private Sub txtpiece_AfterUpdate()
    Me.txtEinnahme = IIf(Me.[DKorrEin] = 0, Me.[txtTotal], Me.[DKorrEin])
End Sub

同様のコードを任意のコントロールに配置すると、txtEinnahme の値が変更されます。

于 2012-11-09T16:11:44.383 に答える