SQL-Aufruf

Servus Experten,

ich plage mich gerade mit folgendem SQL-Aufruf auf einer Tabelle namens tblArbeit:

Public Sub test()

Dim excName As String
Dim excMonat As String
excName = „Rieder Alexander“
excMonat = „Februar“

Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset(„SELECT COUNT(*) As Anz FROM tblArbeit WHERE Name=’“ & excName & _
„’ AND Monat=“ & excMonat)
MsgBox rs!anz
End Sub

Die Tabelle hat mehrere Felder ich frage nur die Felder Name und Monat ab.
Ich bekomme die Fehlermeldung

Laufzeitfehler ‚3061‘:
1 Parameter wurden erwartet, aber es wurden zu wenig Parqameter übergeben.

WIESO ???

Dankbar für jeden zweckdienlichen Hinweis,
Marietta

Servus Marietta

Da das Monat ein String ist, muss es in der Select-Anweisung genauso wie der Name in Hochkommata stehen, also so:

**Set rs = CurrentDb.OpenRecordset("SELECT COUNT(\*) As Anz \_  
 FROM tblArbeit WHERE Name='" & excName & AND \_  
 "' Monat='" & excMonat & "'")**  

Die Fehlermeldung, die Access da ausgibt, ist allerdings zugegebenermaßen nicht wirklich aussagekräftig …

Küss die Handerln
Roland

ich plage mich gerade mit folgendem SQL-Aufruf auf einer
Tabelle namens tblArbeit:

Public Sub test()

Dim excName As String
Dim excMonat As String
excName = „Rieder Alexander“
excMonat = „Februar“

Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset(„SELECT COUNT(*) As Anz
FROM tblArbeit WHERE Name=’“ & excName & _
„’ AND Monat=“ & excMonat)
MsgBox rs!anz
End Sub

Die Tabelle hat mehrere Felder ich frage nur die Felder Name
und Monat ab.
Ich bekomme die Fehlermeldung

Laufzeitfehler ‚3061‘:
1 Parameter wurden erwartet, aber es wurden zu wenig
Parqameter übergeben.

WIESO ???

Dankbar für jeden zweckdienlichen Hinweis,
Marietta

Servus Roland,

Danke für Deine Hilfe,
ich hab mein SELECT ausgebessert auf :

Set rs = CurrentDb.OpenRecordset("SELECT COUNT(*) As Anz " & _
„FROM tblArbeit WHERE Name=’“ & excName & "’ AND " & _
„Monat=’“ & excMonat & „’“)

Der Aufruf sieht jetzt so aus:
SELECT COUNT(*) As Anz FROM tblArbeit WHERE Name=‚Rieder Alexander‘ AND Monat=‚Februar‘

Leider bekomme ich jetzt die Fehlermeldung:
Laufzeitfehler ‚13‘: Typenunverträglich.

Immerhin hat sich was geändert.

Liebe Grüße,
Marietta

Hallo Marietta,

funktioniert doch.

„SELECT Count(*) AS Anz FROM tblArbeit“ _
& " WHERE (((tblArbeit.Name)=’" & excName & „’ )“ _
& " AND ((tblArbeit.Monat)=’" & excMonat & „’ ))“

Du solltest beide Felder als Text definiert haben.
Nicht den Monat als DATUM.

Gruß
Andy

Hi Andy
ich hab die Felder als Text definiert und bekomm trotzdem die Fehlermeldung „Typunverträglich“.
Vielleicht geht mir irgendein Verweis ab oder es liegt an der Definition von:

Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset(„SELECT usw…“)

Ich weiß es schlicht und einfach nicht. Ich glaub ich geh jetzt ein bisschen spazieren und lüfte mir den Kopf aus, für heute mag ich nicht mehr Fehler suchen, mir tun die Augen schon weh.

Liebe Grüße,
Marietta

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi, das ist eine gute Idee. Hoffe das es Dir dann besser ist!
Hier noch einmal der ganze Code.
Bei mir funktioniert es!

Dim excName As String
Dim excMonat As String
Dim sql As String
excName = „Meier“
excMonat = „Januar“

Dim rs As Recordset
sql = „SELECT Count(*) AS Anz FROM tblArbeit“ _
& " WHERE (((tblArbeit.Name)=’" & excName & „’ )“ _
& " AND ((tblArbeit.Monat)=’" & excMonat & „’ ))“

Set rs = CurrentDb.OpenRecordset(sql)
MsgBox rs!anz

Gruß
Andy

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]