A2002 Eingebunde Tabellenstruktur mit VBA ändern

03/03/2008 - 07:31 von Wolfgang Metzger | Report spam
Hallo,

wie kann ich per VBA bei einer eingebundenen Tabelle in Access 2002 in der
Tabellenstruktur ein Element hinzufügen.

Ich will in eine vorhandene Tabelle ein Ja/Nein-Feld hinzufügen.

Mit der Logik aus Access97 geht es anscheinend nicht.
"ALTER TABLE..."

Vielen Dank

Wolfgang Metzger
 

Lesen sie die antworten

#1 Henry Habermacher
03/03/2008 - 08:28 | Warnen spam
Hallo Wolfgang

Wolfgang Metzger wrote:
wie kann ich per VBA bei einer eingebundenen Tabelle in Access 2002 in der
Tabellenstruktur ein Element hinzufügen.

Ich will in eine vorhandene Tabelle ein Ja/Nein-Feld hinzufügen.

Mit der Logik aus Access97 geht es anscheinend nicht.
"ALTER TABLE..."



Zuerst mal: Du solltest die Datenstrukturen der Backend nicht aus der
Frontend heraus àndern, sondern dies direkt im Backend machen, sonst könnte
es sein, dass die anderen Frontends nicht mehr zur Backend passen, weil die
Tabellen nicht neu eingebunden wurden (sollte allerdings bei Jet kein
Problem sein).

Mit dem Ansatz "ALTER TABLE ..." bist Du auf dem richtigen weg. Du musst nur
die Database Instanz, an die Du das Statement abschickst auf die Backend
laufen lassen. Den DAteinamen der Backend findest Du raus, indem Du den
Connect String der eingebundenen Tabelle auseinandernimmst. Dannach öffnest
Du eine Database Instanz der Backend und làsst dann über db.Execute das
statement laufen.

Hier ein Beispiel

Dim db As Database
Dim tdf As TableDef
Dim strConnect As String
Dim strBEDBName As String
Set db = CurrentDb()
Set tdf = db.TableDefs("DeineEingebundeneTabelle")
strConnect = tdf.Connect
Set tdf = Nothing
strBEDBName = Mid(strConnect, 11)
Set db = OpenDatabase(strBEDBName)
db.Execute "ALTER TABLE DeineTabelle " & _
"ADD COLUMN DeinJNFeld YESNO", _
dbFailOnError
db.Close
Set db = Nothing

selbstverstàndlich làsst sich das ganze massiv abkürzen und Du kommst mit
weniger Variablen aus, aber so ist es leichter verstàndlich. Folgender Code
sollte ebenfalls funktionieren (Zeilen werden durch Newsreader gesplittet):

Dim db As Database
Set db =
OpenDatabase(Mid(CurrentDb.TableDefs("DeineEingebundeneTabelle").Connect,
11))
db.Execute "ALTER TABLE DeineTabelle ADD COLUMN DeinJNFeld2 YESNO",
dbFailOnError
db.Close
Set db = Nothing

Gruss
Henry

SEK2 Anmeldung: http://donkarl.com/?SEK
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen