组合框选择后的刷新计算?

时间:2014-11-21 21:37:56

标签: ms-access access-vba

我有一个下拉组合框,我还有一个文本框,其中包含一个执行DLOOKUP的宏,然后将结果抛出到空白文本框中。这部分工作得体。

令人沮丧的是它没有更新结果文本框。我需要在记录上来回看看变化。

当然,我想要的是在选择Combobox后立即运行宏,然后使用新数字更新结果文本框。我确信这很容易做到,但我无法理解。

谢谢!

编辑: 我在After Update事件中添加了以下代码...

Sub updateDM()
    KeyID = Me!DMID.Value 'vDMID.Value
    If IsNull(KeyID) = False Then
      AssignedPlan = DLookup("AssignedPlan", "DMPlanSum", "DMID = " & KeyID)
      vAssignedPlan.Value = AssignedPlan
      Me.Refresh
    End If

End Sub

Private Sub vStartMonth_AfterUpdate()
  updateDM
End Sub

奇怪的是它有点有效,但只有当我做下拉TWICE时。例如,假设我在计划A =结果100(开始选择)。我选择Plan B = 200,但结果框仍然有100.我再次选择Plan B,结果框现在变为200.

另一方面,如果我在选择B计划后更改回计划A,它仍会更改为200!

这似乎落后了一步?

1 个答案:

答案 0 :(得分:0)

从form_update中删除该代码并将其粘贴到combobox_before / after_update事件中。

只需将值直接指定给文本框。

Private Sub ComboBox_AfterUpdate()
  me.txt_resultBox.value = nz(DLookup("AssignedPlan", "DMPlanSum", "DMID = " & ComboBox.value),"")
End Sub