我正在创建一个MS Access 2010数据库,以允许用户输入将在查询中使用的一系列数据。
我有一个名为“Entry”的主窗体和一个名为“SubEntry”的有界子窗体(用于查看输入的记录)。 主窗体(Entry)由允许用户键入值的文本/组合框控件组成,例如:
**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])"
这适用于输入和查看记录集。但问题是,在用户将记录集添加到子表单的初始阶段,确切的“收入”值将添加到子表单的“收入”字段中。但是在此之后,当用户在subfrom中滚动并选择一个记录集(它出现在主窗体的相应控件中)并更改值。例如,选择另一个ticketID或Date,主窗体中的“Revenue”值会更改,但不会在Subform的Revenue字段中更新。同时,任何其他更改都会使主窗体自动更新子窗体,但不会自动更新“收入”值。
我不熟悉MS Access和VBA,只是想知道是否有明显缺失的东西?如何处理SubEntry的“Revenue”字段以像子窗体中的任何其他字段一样自动更新。
感谢您的时间和帮助。
答案 0 :(得分:0)
您需要将文本框与子窗体中的相关字段相关联,因此:
txtEinnahme
ControlSource: KorrEinahme
然后您需要代码来添加计算,例如:
Private Sub txtpiece_AfterUpdate()
Me.txtEinnahme = IIf(Me.[DKorrEin] = 0, Me.[txtTotal], Me.[DKorrEin])
End Sub
在任何控件中放入类似的代码都应该改变txtEinnahme的值。