VBA Datenbankbegriffe wie Recordset

Hallo
Habe folgenden Code Schnipsel der mir vollkommen unklar ist.
Dim db As DAO.Database
Set db = CurrentDb()
Dim rs As DAO.Recordset
Dim vItem As Variant
Set rs = db.OpenRecordset(„tblArtikel“, dbOpenDynaset)

Was ich glaube zu wissen
1.Zeile Variable Db DAO Bibliothek zuweisen DAO Bibliothek beinhaltet Objekte wie Recordset
2.Zeile Verweis auf die aktuelle Datenbank
3.Zeile Variable rs das Objekt Recordset zuweisen 4.Zeile Variable OK!
5.Zeile ???
Recordset = speichern der tblArtikel??? OpenDynaset???
Benötigt man diese Zeilen überhaupt wenn man immer in derselben Datenbank arbeitet??
Würde mich sehr freuen wenn mir jemand ein paar Antworten geben könnte!!

Gruß Franz

Hallo Franz,

ich denke mit der 5. Zeile greifst du auf einen Datensatz der Tabelle Artikel zu.
Habe ähnliches verwendet um bei Eingaben in einem Formularfeld erst nach der Prüfung der Daten aus der Variablen mit dem Recordset eine bestehende Tabelle zu ergänzen.
Was in deiner Datenbank anschließend mit den Daten gemacht wird, weiß ich nicht.

Freundliche Grüße
Gerhard

Hallo Franz,
danke für Deine Anfrage, leider kann ich Dir überhaupt nicht helfen. Ich denke aber, es gibt bei wer-weiß-was Experten, die sich auskennen.
Gruß Uwe

Hallo Franz666,
da ich nicht geanu erkennen kann was du vor hast kann ich dir nur sagen, dass mit dem Text eine fremde Datenbank angsprochen wird. Solltest du nur auf einer Datenbank arbeiten ist es nicht notwendig.
Lambert Held

Du brauchst diese Zeile auf jeden Fall die öffnet dir den Rekordset auf die Tabelle tblArtikel. Ein Rekordset geht nicht auf einer Datenbank sondern immer auf einen bestimmten Inhalt in der Datenbank z.b. Tabelle oder ein SQL Statement mit dem du mehrere Tabellen verknüpfst.

Habe folgenden Code Schnipsel der mir vollkommen unklar ist.
Dim db As DAO.Database
Set db = CurrentDb()
Dim rs As DAO.Recordset
Dim vItem As Variant
Set rs = db.OpenRecordset(„tblArtikel“, dbOpenDynaset)

Hallo Franz,

ein Blick in die Hilfe hätte vielleicht schon geholfen.
Mit der 3. Zeile „Dim rs As DAO.Recordset“ wird eine variable vom Typ RecordSet deklariert. In der 5. Zeile „Set rs = db.OpenRecordset(„tblArtikel“, dbOpenDynaset)“ wird diese Variable instanziert und der Tabelle tblArtikel zugewiesen. Der zweite Parameter legt dabei den Typ des Verweises fest, hier OpenDynaset. Die Hilfe sagt dazu: „Öffnet ein Recordset-Objekt vom Typ Dynaset, das einem ODBC Keysetcursor ähnelt.“
Ähnlich wie mit einem Cursor kann man nun Mithilfe der Variablen RS die angegebene Tabelle auslesen und bearbeiten, z.B. in einer Schleife.

Dazu wird in der ersten Zeile eine Variable vom Typ Database deklariert, der in der zweiten Zeile die aktuelle Datenbank zugewiesen wird.

In der Variablen vItem werden dann später vermutlich einzelne Daten des RecordSets gespeichert um sie weiter zu verarbeiten.

Gruß
Mona

Hallo Franz,
sorry , ich kann Dir da nicht helfen. Ich komme da mehr von der Hardwareseite.
Gruß, Jens

Hallo Franz,
sorry , ich kann Dir da nicht helfen. Ich komme da mehr von der Hardwareseite.
Gruß, Jens.

Hallo Franz,
sorry , ich kann Dir da nicht helfen. Ich komme da mehr von der Hardwareseite.
Gruß, Jens…

Hallo:
Hab leider kaum Zeit
Sry
Stefan

Hallo Franz,

Deine Annahmen sind soweit richtig.
Dim vItem As Variant ist einfach eine Variable, ich nehme an, sie dient dazu, ein bestimmtes Item (Objekt) aufzunehmen. neben Recordset gibt es diverse Items in einer Datenbank, z.b. Field (also ein Datensatzfeld) oder ein Tablespace (Speicherbereich), etc.
Wofür sie später benötigt wird, erfährt man erst durch die Zuweisung, also Set vItem = …!?

Die 5. Zeile ist die Zuweisung eines bestimmten Datenbankinhaltes zu dem noch leeren Datensatzobjekt (recordset rs). Hier wird rs mit inhalten gefüllt, nämlich mit dem Inhalt der Tabelle tblArtikel aus der Datenbank (tbl ist ein Prefix, welches in der Programmierung gerne für Tabelle verwendet wird (->Table)).
.OpenRecordset ist eine Methode, die eine Tabelle öffnet - auf gut Deutsch: Eine Select-Anweisung auf eine Tabelle, um den Inhalt auszugeben und in einem neuen Datensatzobjekt zu speichern. dbOpenDynaset ist die Art des Öffnens der Tabelle, da gibt es verschiedene Möglichkeiten, die man am besten in der Hilfe oder Online nachliest.
Die Zeile 5 ist also nicht überflüssig, sondern die füllt erstmalig das Recordset rs, mit dem man dann weiter arbeiten kann. Man kann z.B. auch mehrere Datensatzobjekte anlegen, eines Auf die Tabelle Artikel und eines auf die Tabelle Preis (oder was es auch immer für Tabellen in der Datenbank gibt). Dann muss man zwei rs anlegen, also rs1 und rs2. Man kann natürlich auch immer das gleiche rs dafür benutzen, nur wird dann der Inhalt komplett überschrieben, d.h. man kann immer nur einen Inhalt gleichzeitig in einem rs haben.

Ich hoffe, dies hilft erst einmal weiter…

Grüße
Surfin Willy