1

我需要在 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 一起设置。

4

1 回答 1

0

听起来第二个组合框有一个控制源。Access 正在尝试将该来源设置为 Date 并且不满意。您不需要该组合框的控制源。

我已经重载了组合框,而且没有太多问题,你的其余代码看起来还不错。

于 2013-12-27T17:15:35.697 回答