VB6: ADODB.RecortSet.find

Hallo,

ich bräcuhte mal wieder Hilfe. Erst einmal mein Code:

rsCars.MoveFirst
Call rsCars.Find(„licenseNumber LIKE '%“ + lboCars.Text + „%’“, 1, adSearchForward)
Call fillForm

rsCars

Hallo,

ist es unbedingt noetig den Recordset offen zu halten?
Ich wuerde es idF mittels einer Select-Anweisung loesen und immer nur den gewuenschten Datensatz im Recordset halten. Dann kann man auch einfach mittels „if rs.EOF“ abfragen ob auch wirklich ein Satz mit dem Suchkriterium vorhanden ist und entsprechend reagieren.

Tschau
Peter

Hi,

ist es denn schneller bzw. sinniger, dass Recordset jedesmal zu schließen und neu zu öffnen?

Jetzt ist es eben so, dass ich beim Laden der Form das RS öffne und alle Änderungen dann am rs vornehme. Dies wahr bequem und funktioniert ja bis auf diese ein Sache sehr gut. oder genau beschrieben:

Bei Laden der Form lese ich die Tabelle aus der DB aus.
Die Primärschlüssel gebe ich in einer ListBox aus.
Beim klicken auf ein Item in der listbox wird die Find-Methode genutzt, um den entsprechenden Datensatz im Recordset auszuwählen.
Die Daten des gefundenen Datensatz werden in die Textboxen geladen.
Nun können diese geändert und gespeichert werden.

Ich könnte natürlich auch statt der Find-Methode eine neue SQL-Abfrage machen und dort, wo ich jetzt „rs.Filter = adFilterNone“ stehen habe, wieder die alte SQL Abfrage ausführen. Das scheint mir aber etwas unschön.

MfG

ja gut.
habe gerade es mal abgeändert.
Und da ich ja so oder so immer nur ein Datensatz benötige (außer beim Füllen der ListBox) muss ich den alten SQL-Befehl ja gar net nochmal ausführen.
So habe ich jetzt also immer nur den Datensatz, den ich auch wirklich brauche. Wenn auf die Listbox geklick wird passiert das:

rsCars.Close
rsCars.Source = „SELECT * FROM car WHERE licenseNumber LIKE '%“ + lboCars.Text + „%’“
rsCars.Open
Call fillForm

Hallo,

dein Loesung hast du ka gefunden…
Noch ein Anmerkung zu der Sache mit dem „offenen Recordset“.

st es denn schneller bzw. sinniger, dass Recordset jedesmal zu :schließen und neu zu öffnen?

Schneller ist es ewt. schon, allerdings nur in einer Single-User Umgebung. Wenn es mehrere gleichzeitige Nutzer gibt, gilt das nicht mehr unbedingt. Auserdem muss man dann auch sicherstellen, das immer die aktuellen Daten im RS enthalten sind, und ein Refresh auf eine RS mit z.B. 1000 Saetzen dauert auch recht lange. Auserdem dauert die interne Verwaltung der Datensatzsperren um so laenger je mehr Saetze im RS enthalten sind.

Tschau
Peter

ok. danke für die Infos und die Hilfe!