Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Set rs = CurrentDb.OpenRecordset(SQLstr, dbOpenSnapshot)

Begonnen von Beate1953, November 26, 2013, 14:25:09

⏪ vorheriges - nächstes ⏩

Beate1953

Hallo,

ich Bekomme immer die Fehlermeldung "Laufzeitfehler 3061: 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben". Der gelbe Marker steht dann auf der Zeile

Set rs = CurrentDb.OpenRecordset(SQLstr, dbOpenSnapshot)


Der ganze Code lautet:
Dim rs As DAO.Recordset

Set rs = CurrentDb.OpenRecordset(SQLstr, dbOpenSnapshot)
If rs.BOF And rs.EOF Then
   MsgBox "Für den von Ihnen gewählten Zeitraum sind keine Datensätze vorhanden"
End If

rs.Close
Set rs = Nothing


SQLstr ist ein SQL-string, der passt.

Das Seltsame ist, dass genau dieser Code bereits einmal ohne Fehlermeldung funktioniert hat.


Im Voraus vielen Dank für Eure Hilfe
Beate1953

Leopold Bloom

Hallo Beate,

ich habe Deinen Code mal kopiert C & P und ein einfaches SQL Satement eingesetzt. Keine Fehlermeldung!!! Der Code passt.
Vielleicht solltest Du doch mal deinen SQL String prüfen oder hier zur Begutachtung einstellen.

LG

Leo


DF6GL

Hallo,

es liegt ja auch nicht am Code, eher am SQL-String... Dort fehlt vermutlich ein Kriterium, bzw. ein entspr. Tabellenfeld, das entweder leer oder unbekannt, weil falsch geschrieben (---> fehlende Eckklammern!!) ist.

Beate1953

Hallo,

ihr hattet recht. Es lag am SQLstring selbst. Ich hatte eine runde Klammer zuviel geschlossen. Jetzt klappt es.

Es wundert mich nur, dass Access den Fehler nicht als Syntaxfehler beanstandet hat und dass

Me:RecordSource = SQLstr

den String ohne Beanstandung verwendet hat und auch die richtigen Datensätze gefunden hat.

Viele Grüße und vielen Dank
Beate1953

DF6GL

Hallo,


VBA-Code (Programm) ist das Eine, SQL-Syntax (Abfrage an die DB-Engine) das Andere.... Beide "wissen" doch nichts voneinander...