recordset und Abfrage in Access

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm MsgBox
Bild

Betrifft: recordset und Abfrage in Access von: Konrad
Geschrieben am: 23.02.2005 18:36:52

Hi Profis.......:-)

ich kämpfe nun hobbymässig mit einem Problem, an dem
ich absolut nicht weiterkomme:
Ich habe in einer UserForm eine SQL-Anweisung definiert, die
in der zugehörigen Access-Datenbank eine Abfrage erzeugt:

qDefTemp.Sql = "SELECT Sachnummer From Teilestammdaten Where( right(Sachnummer, 1)= 0)"

Die Abfrage kommt in Access korrekt an und erzeugt aus der vorhandenen Tabelle "Teilestammdaten" einen Auszug von 3 Datensätzen. Dies ist auch in Access jederzeit aufrufbar.

Rufe ich aber nun die Abfrage aus der UserForm mit "recordset" ab, so ist das Ergebnis von RecordCount immer "1".........grrrrrr

Frage:
Kann ich eine "Abfrage" nicht wie eine Tabelle behandeln oder habe ich was anderes übersehen?????

Set rs5 = Db.OpenRecordset(Name:="WA Sachnummer")

'ansprechen der Abfrage


MsgBox rs5.RecordCount

'was auch die Abfrage an Ergebnissen liefert, der Wert bleibt immer 1...........

Vielen Dank für einen Tip vom Profi!!!!!
mfg
Konrad

Bild


Betrifft: AW: recordset und Abfrage in Access von: bst
Geschrieben am: 23.02.2005 22:35:04

Abend Konrad,

IMHO kannst Du eine in Access hinterlegte Abfrage wie eine Tabelle behandeln.

Eine im VBA zusammengebaute Abfrage, welche auf Access Daten (egal ob auf einer Abfrage oder einer Tabelle beruhend) zugreift dagegen nicht.

Nach "Set db = OpenDatabase(DBNameMitPfad)" nimm:

Set rs = db.OpenRecordset(TabellenName, dbOpenTable)

oder

Set rs = db.OpenRecordset(SQLString, dbReadOnly)

Der Rest ist dann wieder gleich. Entweder auf einmal: "myRange.CopyFromRecordset rs" oder via Schleife:

while not rs.eof
anything = rs.fields(index) ' mit 0 <= index < rs.fields.count
rs.movenext
wend

Siehe: http://www.erlandsendata.no/english/index.php?d=envbadacimportdao

HTH, Bernd


Bild


Betrifft: AW: recordset und Abfrage in Access von: Konrad
Geschrieben am: 24.02.2005 18:28:09

Hi bst,

vielen Dank für Deine Bemühungen!
Habe auch eine andere Lösung aus Berlin bekommen (vieleicht habe ich mich auch
falsch ausgedrückt, da ja die Abfrage in Access hinterlegt war):

recordcount weist einen Bug auf, und erst nach der Anweisung rs.movelast kennt recordcount den Umfang der Ergebnisse.........

also einmal mit movelast die Abfrage durchlaufen und dann wieder mit movefirst an den Anfang stellen (soll auch in der Hilfe stehen :-)

Trotzdem 1000 Dank aus dem Allgäu!!!!!!!!!

mfg
Konrad


 Bild

Beiträge aus den Excel-Beispielen zum Thema "recordset und Abfrage in Access"