Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Recordset-Verwirrung

Begonnen von Nico5, Dezember 27, 2022, 16:22:17

⏪ vorheriges - nächstes ⏩

Nico5

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

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Nico5

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 ^^

PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Nico5

Die Datenbanken hatten in der Tat verschiedene Bibliothek-Eigenschaften! Vielen Dank! Jetzt ergibt das endlich Sinn. Schönen Abend Ihnen und der Leserschaft :)