MS Access - 2个组合框,一个没有更新

时间:2011-10-11 12:19:39

标签: ms-access vba ms-access-2007

我在表单上有两个组合框。第一个允许用户按名称搜索记录,当选择记录时,表单上的所有其他控件都会更新。我不记得我是怎么做到的,我认为它可能是通过向导完成的。但是现在我想添加第二个允许用户按地址搜索的组合框,但是当在这个新的组合框中选择一个地址时,记录不会更新。

以下是我的尝试:

Private Sub Form_Activate()
    Me.Refresh
End Sub

和...

Private Sub Combo250_AfterUpdate()

Me.Requery

End Sub

还有一个SearchForRecord宏,它使用这个WHERE子句搜索第一条记录

="[ID] = " & Str(Nz(Screen.ActiveControl,0))

涉及的两个表是人口统计和地址,它们由ID列连接。

请帮忙!

2 个答案:

答案 0 :(得分:1)

使用向导添加组合框,当选项显示“根据我在组合框中选择的值在表单上查找记录”时,选择该选项并继续完成向导。

手动代码:

With Me.RecordsetClone
    .FindFirst "Address='" & Me.cboAddress & "'"
    If Not .NoMatch Then
        Me.Bookmark = .Bookmark
    End If
End With

答案 1 :(得分:0)

首先,您应该为控件提供有意义的名称,例如cboSearchByAddress

我不知道SearchForRecord宏的工作原理,但您可以将AfterUpdate事件中的代码更改为:

Private Sub cboSearchByAddress_AfterUpdate()
  Me.Filter = "[ID]=" & Nz(cboSearchByAddress,0))
  Me.FilterOn = True
End Sub

您可能需要将Nz(cboSearchByAddress,0))更改为Nz(cboSearchByAddress.Column(0),0)),具体取决于组合框的设置。