Drugą metodę (o większych możliwościach) podał Krzysztof Czuryło. Należy utworzyć "Kwerendę definiującą dane" o następującej
postaci:
CREATE TABLE Tabela1 (ID AUTOINCREMENT(10,5) PRIMARY KEY, Pole1 CHAR(40))
Wyrażenie AUTOINCREMENT(X,Y)
definiuje taki autonumer,
który zaczyna sie od X i przyrasta o Y w kolejnych rekordach, czyli dla X=10 i
Y=5 wygląda tak:
10
15
20
itd...
Trzecia metoda wykorzystuje DAO.
Zwykle po utworzeniu pola Autonumer wypada tam zalożyć
jeszcze klucz podstawowy. Zadanie to realizuje poniższy przykład.
Dim db As Database, tdf As TableDef, fld As Field, idx As Index
Set db = CurrentDb
Set tdf = db.TableDefs("Tabela1")
'Tworzy pole ID w Tabela1, ale jeszce go nie dołącza do tabeli
'(coś jak Edit, ale bez Update)
Set fld = tdf.CreateField("ID", dbLong)
'Ustawia atrybut pola ID na Autonumer
fld.Attributes = fld.Attributes + dbAutoIncrField
'Dołącza pole ID do tabeli
tdf.Fields.Append fld
'Tworzy indeks o nazwie PrimaryKey
Set idx = tdf.CreateIndex("PrimaryKey")
'Tworzy pole ID w indeksie PrimaryKey
'(nie nalezy mylic z polem ID w Tabeli,
'tylko tak samo się nazywają)
Set fld = idx.CreateField("ID", dbLong)
'Dołącza pole ID do indeksu
idx.Fields.Append fld
'Ustawia cechę Primary
'(dopiero teraz indeks staje się główny)
idx.Primary = True
'Dołącza indeks PrimaryKey do listy indeksów tabeli
tdf.Indexes.Append idx
'Odświeża informację o polach tabeli
tdf.Fields.Refresh
Set db = Nothing