Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Access-Datenfeld-Primärschlüssel mit vba anlegen

Access-Datenfeld-Primärschlüssel mit vba anlegen
29.03.2006 01:02:40
Carola41
Hallo liebe Usergemeinde,
ich habe ein Excelmacro, was u.a. mehrere Access-DB-Tabellen anlegen kann, wenn noch nicht vorh.
Klappt auch zuverlaessig, auch der Datenimport.
Ich brauche aber auch das Anlegen des Primaerschluesselfeldes, nur komme ich hier mit keiner Recherche weiter, ist das 'ausserhalb' so nicht zu vereinbaren ?
Wer kann mir bitte helfen ?
Verweis : DAO 3.51 Object Library Access 97
'Prüfen, ob Tabelle bereits vorhanden
If Not TableExists(Dateiname, Tabellenname) Then
'Tabelle erzeugen
Set Datenbank = OpenDatabase(Dateiname)
Set Tabelle = Datenbank.CreateTableDef(Tabellenname)
'Felder erzeugen
'Die Namen der Felder 2 b.4 werden aus den
'entsprechenden Excel-Zellen geholt
With Tabelle
? Set Feld1 = .CreateField("ID"), dbAutowert) ' , dbInteger ?
+++++++++++++++++++++++++++++++++++++++++++++++
diese Angaben habe ich auch gefunden :
Set idx = CreateObject("ADOX.Index")
With idx
.Name = "PrimaryKey"
.IndexNulls = adIndexNullsDisallow
.PrimaryKey = True
.Unique = True
.Columns.Append "AutoWertFeld"
End With
Primärschlüssel angelegt -übliche Einstellungen : keine Nullwerte erlaubt, Uniqueness sowie primary key Einstellung. Dann wird noch das Feld AutoWertFeld in die Collection Columns angefügt, und der Index der entsprechenden Tabelle zugeordnet .
+++++++++++++++++++++++++++++++++++++++++++++++
Set Feld2 = .CreateField(Range("C2"), dbText, 20)
Set Feld3 = .CreateField(Range("D2"), dbDate)
Set Feld4 = .CreateField(Range("E2"), dbInteger)
.Fields.Append Feld1
.Fields.Append Feld2
.Fields.Append Feld3
.Fields.Append Feld4
End With
'Tabelle hinzufügen
Datenbank.TableDefs.Append Tabelle
End If
'Datenbank schließen
Datenbank.Close
Set Feld3 ...........nothing
usw.
Viele Gruesse aus Berlin.
Carola -iss 41 :-))

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Access-Datenfeld-Primärschlüssel mit vba anlegen
29.03.2006 09:07:43
Walter
Hallo Carola,
mir scheint, daß Du noch einen Verweis auf die ADOX-Bibliothek (Microsoft ADO Ext. 2.5 for DDL and Security) benötigst, sonst kann das wohl nicht funktionieren. Leider hast Du nicht erwähnt, was nicht funktioniert.
Falls Du es noch nicht kennst - eine recht brauchbare Beschreibung, wie man Access-Tabellen in VBA anlegt: http://www.aspheute.com/artikel/20000626.htm.
Gruß Walter (aus Wien)
AW: Access-Datenfeld-Primärschlüssel mit vba anlegen
29.03.2006 11:14:56
Carola41
Hallo Walter,
vielen Dank für die Info, aber meine Frage war, ob mit dem Code und der Feldüberschriftenzuordnung auch ein Primärschlüsselfeld angelegt werden kann, also nicht über die ADOX-Mathode.
? Set Feld1 = .CreateField("ID"), dbAutowert) ' , dbInteger ?
Ich hoffe, es hat noch einer eine Idee!
Danke.
Carola
Anzeige
AW: Access-Datenfeld-Primärschlüssel mit vba anlegen
29.03.2006 13:21:04
Walter
Hallo Carola,
mit dem Code gehts mE. nicht, denn CreateField kennt keinen Feldtyp "dbAutowert". Du müßtest einen Index anlegen und diesem dann das Primärschlüsselfeld (so wie in Deinem Text erwähnt) hinzufügen. Ein Beispiel gibts in der Access-Hilfe unter "Primary-Eigenschaft (Beispiel)".
Ich hoffe, das hilft ein wenig weiter.
Gruß Walter (aus Wien)
AW: Access-Datenfeld-Primärschlüssel mit vba anlegen
29.03.2006 15:52:06
Carola41
Hallo Walter,
erstmal Danke für den Tipp mit der Accesshilfe, jaja sowas gibts gratis im Proggy . . .
Durch diesen Code muss ich erst mal durchsteigen, vielleicht hilft es doch noch.
Gruss.
Carola
AW: Access-Datenfeld-Autowert mit vba anlegen
02.04.2006 01:46:34
Carola41
Hallo Usergemeinde,
endlich bin ich auf einen gangbaren Weg gestoßen:
http://www.dbwiki.de/wiki.php?title=VBA_Tipp:_Autowert-Feld_per_VBA-Code_erstellen
Diese Page ist sehr informativ!
Zwar klebt der Autowert jetzt hinten dran, aber er ist eben da und es funzt erst mal.
Gibt es einen Codespruch, dass er den 1. Spaltenplatz beseelt (etwa: movebefore ;-) ?
---- CurrentDb.TableDefs("Tabname").Field.Append Field ---------
In dieser, oder vorher müßte also etwas wackeln.
Aber erst einmal Gute Nacht!
Carola
Anzeige

9 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige