PDA

View Full Version : Campo Database


Carmen
15-02-2003, 13:46
Ciao a tutti.

Con il codice sotto riportato mi creo una nuova tabella in un DB access.
Il mio problema però e che devo settare il campo ("ID") come autoincrementabile dal DB ogni volta che viene aggiunto un nuovo record.

questa e la riga che campo che devo creare autoincrementabile
.Fields.Append .CreateField("ID", dbLong)


Questo e il codice che utilizzo per creare la tabella:

Dim dbsNorthwind As Database
Dim tdfNuovo As TableDef

Set dbsNorthwind = OpenDatabase("c:\NomeDB.mdb")
Set tdfNuovo = dbsNorthwind.CreateTableDef("NomeTabella")

With tdfNuovo
.Fields.Append .CreateField("CampoDB1", dbText, 10)
.Fields.Append .CreateField("CampoDB2", dbText, 20)
.Fields.Append .CreateField("ID", dbLong)
End With
dbsNorthwind.TableDefs.Append tdfNuovo
dbsNorthwind.Close


Spero che mi possiate aiutare. Ciao carmen :confused:

Carmen
17-02-2003, 09:17
Ciao. Possibile che nessuno possa aiutarmi?

Carmen

leon84
17-02-2003, 09:58
Ma perché lo crei da codice il database . Non faresti prima con Access ?

Carmen
17-02-2003, 10:41
Lo devo creare da codice perchè il DB e già presente. Devo aggiungere una nuova tabella al DB già presente. Siccome devo fare la stessa cosa parecchie volte su macchine diverse, devo necessariamente crearmi uno script che mi faccia la cosa in automatico, se nò diventerebbe una cosa ingestibile.


Carmen :cry: :cry:

leon84
17-02-2003, 13:11
AH capisco. ... allora non so proprio come aiutarti perché io li creo con Access .

tas
17-02-2003, 23:10
Fai così:
Dim fld As Field
Dim ind As Index

Set fld = tdfNuovo.CreateField("ID", dbLong)
fld.Attributes = dbAutoIncrField
tdfNuovo.Fields.Append fld

Set ind = tdfNuovo.CreateIndex("ID_INDEX")
ind.Fields = "ID"
ind.Primary = True
ind.Unique = True
tdfNuovo.Indexes.Append ind

ciao

Carmen
18-02-2003, 00:37
OK! Caro tas sei una BoMba :D

Ti ringrazio, perchè mi ai tolto dagli impicci :muro: :D


Grazie. Carmen ;)