HINWEIS
Kapitel 6: DAO-Programmierung
Set db = CurrentDb
Set tb = db.OpenRecordset("Städte und Telefonvorwahl")
Beginn der Transaktion:
ws.BeginTrans
Bearbeitung (z.B. Ändern, Löschen, Einfügen etc.):
tb.Edit
tb("ort") = "ZZZZZZZZZZZZZZZ"
tb.Update
If MsgBox("Änderung speichern?", 36, "Frage") = vbYes Then
ws.CommitTrans ' Übernahme
Else
ws.Rollback ' Verwerfen aller Änderungen
End If
Da alle Operation innerhalb einer Transaktion gepuffert werden, können Sie durch Verwendung der oben ge-
nannten Methoden die Performance Ihrer Anwendung erheblich steigern (insbesondere in Netzwerkumgebungen!)
Praxisbeispiele
Eine Tabelle anlegen
Database-, TableDef- und Field-Objekt; Fields-Auflistung;
Normalerweise legen Sie eine neue Tabelle im Datenbankfenster an. Sie können das aber auch per Pro-
grammcode tun. Das kann für solche Fälle sinnvoll sein, in denen die Tabellenstruktur zur Entwurfszeit
noch unbekannt ist bzw. sich im Programmverlauf ändert. Im vorliegenden Beispiel soll eine neue Tabelle
für ein Fahrtenbuch innerhalb der Beispieldatenbank angelegt werden.
Oberfläche
Erstellen Sie die Entwurfsansicht eines Formulars, welches etwa folgendes Aussehen haben könnte:
Abbildung 6.12 Das Testformular zur Laufzeit
336
Die Datensatzquelle des Formulars und die Steuerelementinhalte der Textfelder werden erst später per Code
zugewiesen. Die Namen der Textfelder ändern wir der Übersicht wegen in Text1 bis Text9 (von links oben
nach rechts unten).
Quelltext
Binden Sie, wie bei allen Anwendungen die DAO verwenden, einen Verweis auf die Microsoft Office 12.0
Access database engine Object Library ein (die inzwischen veraltete Microsoft DAO 3.6 Object Library ginge in
diesem Fall aber auch).
Zu Beginn sind die benötigten Objekte zu deklarieren:
Dim db As Database
Dim td As TableDef
Dim fld As Field
Den wesentlichen Programmcode bauen wir in das
Load
-Event des Formulars ein:
Private Sub Form_Load()
Set db = CurrentDb
Nach Zuweisen des Datenbankobjekts können wir die neue Tabelle erstellen:
Set td = db.CreateTableDef
td.Name = "Fahrtenbuch"
Set fld = td.CreateField("Datum", dbDate)
td.Fields.Append fld
Set fld = td.CreateField("vonZeit", dbDate)
td.Fields.Append fld
Set fld = td.CreateField("bisZeit", dbDate)
td.Fields.Append fld
Set fld = td.CreateField("kmBeginn", dbLong)
td.Fields.Append fld
Set fld = td.CreateField("kmEnde", dbLong)
td.Fields.Append fld
Set fld = td.CreateField("Reiseziel",dbText,30)
td.Fields.Append fld
Set fld = td.CreateField("Reisezweck", dbMemo)
td.Fields.Append fld
Set fld = td.CreateField("Liter", dbSingle)
td.Fields.Append fld
Set fld = td.CreateField("Brutto", dbCurrency)
td.Fields.Append fld
Jetzt muss die Tabelle nur noch mit der Datenbank verbunden werden:
db.TableDefs.Append td ' Tabelle an Datenbank koppeln
337
Praxisbeispiele

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.