FindFirst nach Integerwert (VBA)

jabadabado, Dienstag, 15.03.2016, 13:25 (vor 1345 Tagen)

Hallo.
Irgendwie hab' ich gerade eine Denkblokade.
Ich habe eine Tabelle mit 2 Feldern
Vorname = Text
LfdNr = Zahl

Es wird eine Zufallszahl ermittelt.
Anhand derer soll nun in dieser Tabelle nach der LfdNR gesucht werden und der Name in eine Variable geschrieben werden.

Aber FINDFIRST verweigert den Dienst.
Immer erscheint Laufzeitfehler 3251
Operation wird für diesen Objekttype nicht unterstützt..

x ist Integer wird zuvor mit einer Zufallszahl gefüllt.

Set db = CurrentDb
Set rs = db.OpenRecordset("Vorname_mann")
rs.FindFirst "LfdNr = '" & x & "'"

ZVorname = rs("Vorname")

Ich habe findfirst jetzt schon in verschiedenen Formatierungen ausprobiert.
Aber immer wieder verweigert es mir den Dienst.

rs.FindFirst "LfdNr = #" & x & "#"
rs.FindFirst "LfdNr = " & x

FindFirst nach Integerwert

Martin Asal @, Dienstag, 15.03.2016, 14:01 (vor 1345 Tagen) @ jabadabado

Richtig ist

rs.FindFirst "LfdNr = " & x

Der Parameter hinter Findfirst ist nur der WHERE-Teil einer SQL-Abfrage, da gehören bei Zahlen keine Hochkomma etc hin. Aber wenn du das schon ausprobiert hast, wird dein Problem von etwas anderem verursacht. Verursacht wirklich diese Zeile den Fehler? Wenn ja, wie sind denn db und rs deklariert? Etwas anderes als

Dim db As DAO.Database
Dim rs As DAO.Recordset

?

Martin

FindFirst nach Integerwert

jabadabado, Dienstag, 15.03.2016, 14:12 (vor 1345 Tagen) @ Martin Asal

Also:
Deklaration
Dim db As DAO.Database
Dim rs As DAO.Recordset

In der Function:
Set db = CurrentDb
Set rs = db.OpenRecordset("Vorname_mann")

FindFirst nach Integerwert

jabadabado, Dienstag, 15.03.2016, 14:27 (vor 1345 Tagen) @ Martin Asal

Hab es in der Function jetzt mal testweise geändert...

Set db = CurrentDb
von
Set rs = db.OpenRecordset("Vorname_mann")

nach
Set rs = db.OpenRecordset("Vorname_mann", dbOpenDynaset)

Das war der Fehler..
Nun Läuft es...

RSS-Feed dieser Diskussion
powered by my little forum