# Zugriff auf Access Datenbank!?!



## schleeper (5. Dezember 2002)

hi @ all

ich möchte gerne auf eine Access Datenbank zugreifen, Daten ändern/löschen und reinschreiben.
die MSDN Library schlägt mir da den "Datenumgebungs-Designer" vor. die verbindung zur datenbank klappt auch ohne weiteres, nur wie greife ich auf eine beliegige tabelle, spalte und zeile zu? kennt da einer zufällig an gutes tut wo das erklärt wird? aus der MSDN Library werd ich irgendwie net schlau  
thx im vorraus, schleeper


----------



## Dario Linsky (5. Dezember 2002)

Ich persönlich benutz eigentlich nur Connection- und Recordset-Objekte aus den ADODB-Libraries. Dazu musst Du eigentlich nur einen Verweis auf die entsprechende Bibliothek setzen (Microsoft ActiveX Data Objects 2.x).
Dann kannst Du mit ADODB.Connection eine Verbindung zur Datenbank aufbauen und mit ADODB.Recordset Abfragen auf dieser Verbindung ausführen.

```
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DateinameDerDatenbank, "", "", -1
rs.Open "SELECT * FROM tabelle", adOpenStatic, adLockPessimistic, -1
Do While Not rs.Eof
    MsgBox rs.Fields("feldname")
    rs.MoveNext
Loop

rs.Close
cn.Close
```

Das ist eigentlich alles, nur eben sehr sehr kurz zusammengefasst. Falls noch Klärungsbedarf besteht, dann stell Deine Frage mal etwas genauer. Denn Zugriffe auf Datenbanken sind schon relativ umfangreich.


----------



## schleeper (11. Dezember 2002)

hi....
also wenn ich den code den zu mir gegeben hast so einfüge um zu testen, kommt bei mir ne fehlermeldung und zwar...
"Die argumente sind vom falschen Typ, liegen außerhalb des gültigkeitsbereiches oder sind miteinander unvereinbar"
und zwar in der zeile:
"rs.Open "SELECT * FROM Tag1", adOpenStatic, adLockPessimistic, -1"


----------



## Dario Linsky (11. Dezember 2002)

Hab ich doch glatt vergessen, dem Recordset zu sagen, über welches Connection-Objekt die Abfrage ausgeführt werden soll... 


```
rs.Open "SELECT * FROM tabelle", cn, adOpenStatic, adLockPessimistic, -1
```
Das sollte jetzt aber stimmen.
Alternativ dazu geht auch folgende Anweisung:

```
Set rs = cn.Execute("SELECT * FROM tabelle")
```
Bei der zweiten Möglichkeit musst Du dann aber darauf achten, dass Du das Recordset-Objekt nicht vorher schon erzeugst (... New ADODB.Recordset).


----------



## schleeper (11. Dezember 2002)

heeh danke nu funtzts 
thx schleeper


----------

