Hallo Leute,
kurz zu mir: Ich bin neu im Stoff, also noch ein ziemlicher Noob ^^. Verzeiht mir daher bitte dumme Fragen. Könnt ihr mir vielleicht sagen warum die Prozedur nicht funktioniert, die darauf folgende aber schon?
Sub Aufgabe_0()
Dim db As Database
Set db = CurrentDb
Dim rs As Recordset
Set rs = db.OpenRecordset("tblKunden")
'In der Übung 3.1 hat diese Prozedur funktioniert. Hier aber leider nicht. Ich verstehe den Unterschied leider nicht. Können Sie mir bitte erläutern, warum die folgende Prozedur funktioniert und nicht diese hier?
MsgBox rs.RecordCount
rs.Close
End Sub
Sub Lesen_Kunden_über_Tabelle()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("tblKunden")
'Im Lehrbuch wurde die Variable rs ganz anders definiert. Dieses Set verwirrt mich. Warum funktioniert dieses Set und nicht der andere?
MsgBox rs.RecordCount
rs.Close
End Sub
Hallo Nico,
Die Referenz auf die Datenzugriffs-Bibliothek (DAO, ADO) sollte man
immer angeben, da sich deren Methoden unterscheiden, und der Zugriff
aus VBA ohne die Referenz sich nach der Reihenfolge in den Verweisen
richtet.
Jedenfalls so grob; - die Profis können es sicher besser erklären.
gruss ekkehard
Danke dir für die schnelle Antwort. Aber warum funktioniert dann die erste Prozedur in einer anderen Access-Datei ??? ? Das ist die eigentliche Frage, welche ich mir stelle. Ich glaub, da habe ich noch etwas grundlegendes nicht verstanden ^^
Zitat von: Nico5 am Dezember 27, 2022, 16:43:40Aber warum funktioniert dann die erste Prozedur in einer anderen Access-Datei ??? ?
Ohne explizite Angabe der Bibliothek ("DAO" im obigen Beispiel) wird ein Recordset-Objekt vom ersten, in den Verweisen gefunden Typ mit passendem Namen erstellt. Das kann je nach eingebunden Verweisen entweder ein DAO oder ein ADODB Recordset sein. Die Verweise und deren Reihenfolge werden pro Datenbank festgelegt (Menü: Extras -> Verweise). Daher kann derselbe Code in einer Access-Anwendung funktionieren und in der anderen nicht.
Die Datenbanken hatten in der Tat verschiedene Bibliothek-Eigenschaften! Vielen Dank! Jetzt ergibt das endlich Sinn. Schönen Abend Ihnen und der Leserschaft :)