ACCESS 2007

Werbung
Datenbankzugriff mit DAO
konstant
Private Sub Befehl0_Click()
Dim db As DAO.Database
Dim ta As DAO.Recordset
Set db = CurrentDb()
Set ta = db.OpenRecordset("person")
ta.AddNew
ta!pnr = 99
ta!pname = "Zuse"
ta.Updatex
ta.Close
End Sub
Private Sub Befehl1_Click()
Dim db As DAO.Database
Dim ta As DAO.Recordset
Set db = CurrentDb()
Set ta = db.OpenRecordset("person")
ta.MoveFirst
While Not ta.EOF
MsgBox ta!pnr
MsgBox ta!pname
MsgBox "weiter?"
ta.MoveNext
Wend
ta.Close
End Sub
Mit Formularfeldern
Private Sub Befehl6_Click()
'Tabelle anlegen
Dim db As DAO.Database
Dim df As DAO.TableDef
Dim fe1 As DAO.Field
Dim fe2 As DAO.Field
Set db = CurrentDb()
Set df = db.CreateTableDef("person")
Set fe1 = df.CreateField("pnr", DB_INTEGER)
Set fe2 = df.CreateField("pname", DB_TEXT, 20)
df.Fields.Append fe1
df.Fields.Append fe2
db.TableDefs.Append df
End Sub
Private Sub Befehl0_Click()
'Zeile eintragen
Dim db As DAO.Database
Dim ta As DAO.Recordset
Set db = CurrentDb()
Set ta = db.OpenRecordset("person")
ta.AddNew
ta!pnr = Text2
ta!pname = Text4
ta.Update
ta.Close
End Sub
Private Sub Befehl1_Click()
'alle Zeilen lesen
Dim db As DAO.Database
Dim ta As DAO.Recordset
Set db = CurrentDb()
Set ta = db.OpenRecordset("person")
ta.MoveFirst
While Not ta.EOF
Text2 = ta!pnr
Text4 = ta!pname
MsgBox "weiter?"
ta.MoveNext
Wend
ta.Close
End Sub
Private Sub Befehl7_Click()
'Zeilen mit Bedingung lesen
Dim db As DAO.Database
Dim ta As DAO.Recordset
Dim bedingung As String
Set db = CurrentDb()
bedingung = "pnr > 10"
Set ta = db.OpenRecordset("person", dbOpenDynaset)
ta.FindFirst bedingung
While Not ta.NoMatch
Text2 = ta!pnr
Text4 = ta!pname
MsgBox "weiter?"
ta.FindNext bedingung
Wend
ta.Close
End Sub
Private Sub Befehl1_Click()
'Zeilen löschen
Dim db As DAO.Database
Dim ta As DAO.Recordset
Set db = CurrentDb()
Set ta = db.OpenRecordset("person")
ta.MoveFirst
While Not ta.EOF
Text2 = ta!pnr
Text4 = ta!pname
ergebnis = MsgBox("löschen?", vbYesNo, "MsgBox-Beispiel")
If ergebnis = vbYes Then
ta.Edit
ta.Delete
End If
ta.MoveNext
Wend
ta.Close
End Sub
Datenbankzugriff mit SQL
> Erstellen
-> Abfrageentwurf, Fenster schliessen, „SQL“ erscheint
-> SQL-Kommando eingeben
-> ! (ausführen)
Es ist immer nur ein Befehl möglich.
Oder programmieren in VBA:
Private Sub Befehl4_Click()
Dim db As DAO.Database
Dim cmd As String
Set db = CurrentDb()
cmd = "insert into person values (" + Text5 + ",'" + Text7 + "'," + Text9 + ")"
MsgBox cmd
db.Execute (cmd)
End Sub
Private Sub Befehl11_Click()
'Deklarationen
Dim db As DAO.Database
Dim ergebnis As DAO.Recordset
Set db = CurrentDb()
'Datenbankzugriff
Dim cmd As String
cmd = "select pnr, pname, palter from person"
Set ergebnis = db.OpenRecordset(cmd)
'Reaktion
ergebnis.MoveLast
ergebnis.MoveFirst
For i = 1 To ergebnis.RecordCount
Text5 = ergebnis!pnr
Text7 = ergebnis!pname
Text9 = ergebnis!palter
MsgBox "weiter"
ergebnis.MoveNext
Next
End Sub
Konzeptueller Unterschied DAO und SQL
DAO
hauptspeicherorientiert,
die Daten werden in den Hauptspeicher geholt,
dort bearbeitet und dann zurückgeschrieben
SQL
die Kommandos sind komplex,
werden versandt und dezentral bearbeitet
Programmierunterschiede ACCESS-VBA und Java
In Java ist nötig
SQL-Bibliotheken einbinden
Panel erzeugen
Listener erzeugen
Datasource definieren und benutzen
Methoden für Panel und Resultset benutzen
In VBA nicht nötig Die Programme haben also eine geringere Zeilenzahl wegen der
engen Verklammerung von ACCESS-VBA mit dem eigenen ACCESSDatenbanksystem.
ODBC
Anlegen einer Datenquelle
In Windows -> Systemsteuerung -> Verwaltung -> Datenquellen/ODBC
Treiber, Name, Ort angeben
Beim Anlegen einer ACCESS7-Datenbank als Datenquelle ist darauf zu achten, dass
der ACCESS7-Datenbanktreiber den Typ accdb kann.
Beim SQL_Server müssen noch der Serverort und die Datenbank angegeben
werden. Ausserdem muss man sich einloggen.
Eine Systemdatenquell kann nur vom Administrator angelegt werden. Eine
Benutzerdatenquelle geht auch.
Access - Access
-> Externe Daten -> Access -> importieren oder verknüpfen
-> Ort im Dateisystem suchen, Tabellen werden angezeigt
Access – SQL Server
-> Externe Daten -> Doppelbildchen -> ODBC-Datenbank -> verknüpfen,
Datenquelle auswählen
Herunterladen