Ich habe eine Tabelle in Access: Sagen wir mal: Name, Vorname
Jetzt möchte ich mittels VBA-Code eine dritte Spalte (Field) anfügen.
dim db as Database
dim td as Tabledef
Set td = db.CreateTableDef("MeineTabelle", dbOpenDynaset)
With td
.Fields.Append .CreateField("Ort", dbText, 20)
.Fields.Refresh
End With
Set td = Nothing
set db = Nothing
Eigentlich sollte das doch so funktionieren… Tut es aber nicht!
Wenn du eine neue Tabelle erstellen willst ist CreateTableDef (wie der Name schon sagt) richtig, es muss dann aber so aussehen:
Dim db As Database, td As TableDef
Set db = CurrentDb()
Set td = db.CreateTableDef("MeineTabelle")
With td
.Fields.Append .CreateField("Ort", dbText, 20)
.Fields.Refresh
End With
db.TableDefs.Append td
Set td = Nothing
Set db = Nothing
Wenn es sich um eine vorhandene Tabelle handelt, darfst du sie natürlich nicht neu anlegen:
Dim db As Database, td As TableDef
Set db = CurrentDb()
Set td = db.Tabledefs("MeineTabelle")
With td
.Fields.Append .CreateField("Ort", dbText, 20)
.Fields.Refresh
End With
Set td = Nothing
Set db = Nothing