Hallo Stephan,
da beste für dich wäre ein gutes Buch, aber ich wills mal versuchen.
Es gibt viele verschiedene Möglichkeiten eine Access Datenbank
zu öffnen.
Am einfachsten wäre es mit dem ADODC Steuerelement, aber
davon halte ich nichts.
Sicherer und vor allem übersichtlicher ist es , wenn man gleich per Code
eine Connection und ein Recordset öffnest und am besten ganz auf das ADODC
verzichtest. Es gibt nichts, was man ohne das ADODC nicht auch machen
kann und man hat dabei noch den Vorteil, sehr viel mehr Kontrolle
über alle Abläufe zu haben.
Also fangen wir mal an:
Also ich nutze ADO als Zugriffsmöglichkeit.
(DAO ist nicht mehr zeitgemäß und wird nicht mehr von MS
weiterentwickelt.)
Du mußt unter Veweise "Microsoft ActiveX Data Objects 2.X Library"
einbinden.
An Stelle des x's sollte mind. 5 besser 8 stehen. Die neueste mdac
Version von MS ist als 2.8 kostenlos herunterladbar.
Desweiteren sollte eine aktuelle Jet Engine installiert sein. Diese
gibt es mitlerweile in der Version SP8 für XP und 7 glaube ich für
Win98.
Bei XP brauchst du aber erst mal gar nichts zu installieren das ist
hauptsächlich bei prof. Anwendungen notwendig, fürs Beispiel geht
ohne die neuesten Versionen.
Ich gehe jetzt mal von einer Form ohne Module aus.
In der Form gibt es eine Listbox die ich mit der einen
Spalte deiner Tabelle fülle.
Im Deklarationsteil der Form:
Private cn As ADODB.Connection
Private rs As ADODB.Recordset
Im Load Ereignis der Form:
Code:
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
With cn
.Properties("Data Provider") = "Microsoft.Jet.OLEDB.4.0"
.Properties("Data Source") = deine Datenbank
.Properties("User ID") = "Admin"
.Properties("Jet OLEDB:Database Password") = dein Passwort wenn es
keins gibt kann das weggelassen werden
.Cursorlocation = adUseClient
.Open --> hier wird die Datenbank geöffnet
End With
With rs
rs.Source = "Select eins from List"
rs.ActiveConnection = cn
rs.CursorLocation = adUseClient '---> bedeutet das das gesamte
Recordset sofort lokal in den
Speicher gelesen wird.
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
rs.Open '---> Recordset wird geöffnet
End With
'Jetzt füllen wir die Listbox wenn Daten in der Tabelle vorhanden sind
Do while not rs.EOF 'Schleife solange laufen lassen bis End of File erreicht
'ist
List1.Additem rs.Fields("eins").Value
rs.Movenext ' zum nächsten Datensatz springen
Loop
rs.Close ' Recordset schliessen
set rs = Nothing 'Objekt zerstören
Im UnLoad Ereignis der Form:
cn.close
set cn = Nothing
Im Click Ereignis eines Buttons:
'Hinzufügen eines Datensatzes:
cn.Execute("Insert Into List (eins) Values (" & Variable & ")")
Wenn die Spalte ein Textfeld ist muss die Variable in Hochkommas
gesetzt werden also ..... Values ( ' " & Variable & " ' )")
Wenn in der Variable selbst Hochkommas vorkommen müssen diese
durch doppelte Hochkommas ersetzt werden
z.B. mit Variable = Replace(Variable" ' ", " '' " )
'Ändern eines Datensatzes
cn.Execute("Update List set eins = " & neuerWert & " where eins = " & alterWert )
Das mit dem Hinzufügen und Ändern kann auch über ein Recordset
mit Rs.Addnew oder rs.Update gemacht werden aber das führt
jetzt zu weit.
Es gibt viele Beispiele im Netz und du musst versuchen es langsam
zu erlernen.
Wenn dann ein paar Erfolge kommen macht das auch Spaß.
Ich hoffe das war ein wenig verständlich.
Gruß
Jens