子表单“已分配”控件未更新

时间:2012-11-06 00:35:04

标签: sql vba ms-access access-vba

我正在创建一个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”字段以像子窗体中的任何其他字段一样自动更新。

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:0)

您需要将文本框与子窗体中的相关字段相关联,因此:

txtEinnahme
ControlSource: KorrEinahme

然后您需要代码来添加计算,例如:

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

在任何控件中放入类似的代码都应该改变txtEinnahme的值。