count die Anzahl der Zeilen in der sql Abfrage Ergebnis mit access vba
Ich versuche, die Anzahl der Zeilen in der sql-Abfrage das Ergebnis mit der access 2007-vba.
Was ich habe, ist ein Textfeld mit dem Namen AGN
wenn ein Benutzer legen Wert darauf prüfen, ob diese Wert dann es zurück zu bringen MsgBox
wenn das der Wert ist schon eingefügt. Was ich versuche zu tun ist :
Dim rs As DAO.Recordset
Dim db As Database
Dim strSQL As String
Set db = CurrentDb
strSQL = "SELECT agencies.[agency no] FROM agencies WHERE agencies.[agency no]= " &Me.AGN.Text
Set rs = db.OpenRecordset(strSQL)
If rs.Fields.Count > 1 Then
MsgBox "this value is already here "
End If
Set rs = Nothing
Wenn ich das einfügen beliebigen Wert in der textbox hab ich run time error 3061 (zu wenige Parameter)
- [Agentur, Nein] Spalte ist die Nummer geben und der Aufgabe, die ich will es ist zu prüfen, ob es keine Zeilen von der Abfrage zurückgegeben wird
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den "zu wenige Parameter" Fehlermeldung in der Regel bedeutet, dass es etwas in Ihrer SQL-Anweisung, die Access nicht erkennen, wie ein Feld, Tabelle, Funktion oder SQL-Schlüsselwort ist. In diesem Fall könnte es passieren, wenn
[agency no]
ist text eher als numerischen Datentyp. Wenn das der Fall ist, setzen Sie den Wert vonAGN
mit Anführungszeichen, wenn Sie die SQL-Anweisung erstellen. (Oder könnten Sie eine parameter-Abfrage zu vermeiden die Notwendigkeit zu zitieren, den text Wert.)Im Falle von Schwierigkeiten, gehen Sie an das Fenster und kopieren Sie die Ausgabe aus
Debug.Print
. Dann erstellen Sie eine neue Abfrage in der Access-Abfrage-designer wechseln Sie zur SQL-Ansicht und fügen Sie in den text der Anweisung für die Prüfung.Einmal Ihre
SELECT
funktioniert, können Sie überprüfen, ob das recordset leer ist. Wenn es leer ist, sowohl seineBOF
undEOF
Eigenschaften auf true gesetzt sind. So ist zu erkennen, wenn es nicht leer ist, überprüfen Sie fürNot (BOF And EOF)
...Aber Sie nicht wirklich brauchen, um ein recordset zu öffnen, um festzustellen, ob eine übereinstimmende Zeile vorhanden ist. Sie können den Rückgabewert eines
DCount
Ausdruck.Hinweise:
AGN.Value
stattAGN.Text
weil die.Text
Eigenschaft ist nur verfügbar, wenn das Steuerelement den Fokus hat. Aber ich weiß nicht, wo du bist mit diesem code überprüfen, so unsicher ist die richtige Wahl für Sie.SELECT
Abfrage und dieDCount
Optionen. Oft ist es einfach zu übersetzen, zwischen den beiden.