Feld (Spalte) an Tabelle anfügen (Access, VBA)

Hallo Accessperten,

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!

Wer-weiss-was?

(Woly)

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

Gruß aus dem Norden
Reinhard Kraasch

Ok, thx!
Hallo Reinhard,

danke , das hat (natürlich) geklappt…!

(Woly)