我需要在 Access 2007 表单上添加基本记录搜索功能。我设置了两个组合框,第一个提供三种不同的搜索选项:按参考、按日期或按员工姓名搜索。然后,此 ComboBox 上的 AfterUpdate 事件将设置第二个 ComboBox 的 RowSource 以向用户显示任何可用的参考资料、日期或员工姓名,以允许他们选择他们想要的。一个 Go 按钮然后打开相关联的表单,其中包含符合其条件的记录。
一开始一切顺利,工作正常,但后来出现了一个错误。如果我选择按引用(长)或名称(字符串)搜索,它工作正常,但如果我选择按日期搜索,而可用日期在第二个组合中正确显示,当我尝试选择一个时出现错误:输入的值对此字段无效。这是因为控件只能用于单一数据类型,而我尝试在不同时间使用三种不同的数据类型会造成混淆吗?我没有在控件的属性中设置任何格式。
Private Sub btnGo_Click()
'go clicked so find request being searched for and open form at that request(s)
If Not IsNull(Me.cboSearchOption) And Not IsNull(Me.cboSearchFor) Then
'search variables entered so go to specified request
Select Case [gblOption]
Case "Reference"
DoCmd.OpenForm "frmRequestForInformation", , , "reference = " & Me.cboSearchFor.Value
Case "Request date"
DoCmd.OpenForm "frmRequestForInformation", , , "date_request_received = #" & Me.cboSearchFor.Value & "#"
Case "Staff"
DoCmd.OpenForm "frmRequestForInformation", , , "signed_by = '" & Me.cboSearchFor.Value & "'"
End Select
Else
MsgBox "Please ensure you have entered search values in both fields", vbOKOnly, "Unable to search"
End If
结束子
注意:gblOption 包含 cboSearchOption 的值,并在其 AfterUpdate 事件中与 cboSearchFor 的 RowSource 一起设置。