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"