文本框的VB-MS访问验证

时间:2017-01-18 19:49:30

标签: access-vba access

我在其中一个表单上设置了以下vb代码。我设置了一个文本框,用户可以通过CN编号进行搜索,但我遇到了问题。如果用户没有在文本框中输入任何内容并单击搜索,则会提示他们输入CN#(这就是我想要的)。如果用户输入CN#,我的查询将找到CN#及其详细信息(这就是我想要的)。我的问题在于,如果用户输入了错误的CN#,查询仍会弹出,但查询表为空。我正在尝试设置一个验证字段,该字段限制可以输入的内容或让用户知道他们输入的CN#是不正确的。

Private Sub cmdSearch_Click()
    If Nz(txtCN, "") <> "" Then
         DoCmd.OpenQuery "querySearchCN_CE", acViewNormal, acReadOnly
        'DoCmd.OpenQuery "query_CO_CE", acViewNormal, acReadOnly
        'DoCmd.OpenQuery "querySearchCN_2010_2015_CE", acViewNormal, acReadOnly
        'DoCmd.OpenQuery "querySearchCN_2016_CE", acViewNormal, acReadOnly
    Else
       'If Nz(txtReportDate, "") = "" Then
        MsgBox "NOTICE! Please enter a CN #"
        Exit Sub
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

您可以在继续执行代码之前添加DCOUNT函数来测试输入文本。如果计数返回0,那么您可以假设没有符合输入条件的记录。

Private Sub cmdSearch_Click()
    If Nz(txtCN, "") <> "" Then

        If DCount("fldField", "tblTable", "fldField = " & txtCN) > 0 Then
             DoCmd.OpenQuery "querySearchCN_CE", acViewNormal, acReadOnly
            'DoCmd.OpenQuery "query_CO_CE", acViewNormal, acReadOnly
            'DoCmd.OpenQuery "querySearchCN_2010_2015_CE", acViewNormal, acReadOnly
            'DoCmd.OpenQuery "querySearchCN_2016_CE", acViewNormal, acReadOnly
        Else
            MsgBox "You have entered an invalid CN #"
        End If
    Else
       'If Nz(txtReportDate, "") = "" Then
        MsgBox "NOTICE! Please enter a CN #"
        Exit Sub
    End If
End Sub