2017-01-18 2 views
0

Ich habe die folgenden Vb-Code-Setup auf einem meiner Formulare. Ich habe ein Textfeld eingerichtet, in dem ein Benutzer nach einer CN-Nummer suchen kann, aber ich stoße auf ein Problem. Wenn der Benutzer nichts in das Textfeld eingibt und auf Suchen klickt, werden sie aufgefordert, eine CN # einzugeben (was ich will). Wenn der Benutzer eine CN # eingibt, findet meine Abfrage diese CN # mit ihren Details (was ich will). Wo mein Problem liegt ist, wenn der Benutzer eine falsche CN # eingibt, wird die Abfrage immer noch angezeigt, aber die Abfragetabelle ist leer. Ich versuche, ein Validierungsfeld einzurichten, das einschränkt, was eingetippt werden kann, oder dem Benutzer mitzuteilen, dass die eingegebene CN-Nummer falsch ist.VB-MS Access-Validierung für Textbox

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

das ist nicht VB.NET-Code. Es gibt kein 'DoCmd'. Sie wollen wahrscheinlich das 'access-vba'-Tag – Plutonix

+0

@Plutonix behoben, danke Sir! – KKP

+1

Sie sollten eine ComboBox anstelle einer Textbox verwenden. Erstellen Sie es, um seine Werte aus der Tabelle mit Ihren gültigen CN # s zu erhalten. Legen Sie in den ComboBox-Eigenschaften "Auf Liste begrenzen" auf Ja fest. – tlemaster

Antwort

0

Sie können eine DCOUNT-Funktion hinzufügen, um den eingegebenen Text zu testen, bevor Sie mit Ihrem Code fortfahren. Wenn der Zählerstand 0 ergibt, können Sie davon ausgehen, dass keine Datensätze vorhanden sind, die die eingegebenen Kriterien erfüllen.

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