我需要在Access 2007表单上添加基本记录搜索功能。我设置了两个ComboBox,第一个提供三种不同的搜索选项:按引用搜索,按日期或按员工名称搜索。然后,此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
End Sub
注意:gblOption包含cboSearchOption的值,并在其AfterUpdate事件和cboSearchFor的RowSource上设置。
答案 0 :(得分:0)
这听起来像第二个组合框有一个控制源。 Access正在尝试将该源设置为Date并且不满意。您不应该需要该组合框的控件源。
我的组合框重载超过了没有太多问题的组合框,其余代码看起来还不错。