Home Ritorna

 

Tutorial Access - Creare una tabella con indice con VBA

Può essere utile creare tabelle con relativa chiave primaria utilizzando visual basic.
Questo esempio prevede una maschera con un tasto che crea una tabella Test_ADO d'esempio.

Serve Access 2000 o XP (scaricate l'esempio per Access 2000).

La routine è la seguente:

Private Sub Comando0_Click()
'Questo esempio crea una tabella e dei
'campi nel database corrente


MsgBox "Se la tabella Test_ADO esiste già bisogna cancellarla", , "ISI s.r.l."

'Oggetti ADOx
Dim cat As ADOX.Catalog
Dim tbl As New ADOX.Table
Dim idx As ADOX.Index

'On Error GoTo Proc_Err

Set cat = New ADOX.Catalog


'Punta l'oggetto Catalog
'al database corrente

cat.ActiveConnection = CurrentProject.Connection

Set tbl = New ADOX.Table


'Crea la tabella
With tbl
.Name = "Test_ADO"
.ParentCatalog = cat

.Columns.Append "Test_ID", adInteger


'Imposta il campo contatore
.Columns("Test_ID").Properties("Autoincrement") = True
.Columns.Append "Nome", adWChar, 25
.Columns.Append "Cognome", adWChar, 25
.Columns.Append "Telefono", adWChar, 50
End With

'Aggiunge la tabella al catalogo
cat.Tables.Append tbl

'Crea l'oggetto index
Set idx = New ADOX.Index


'Imposta l'indice
'per essere la chiave primaria e lo ordina
'in senso discendente

With idx
.Name = "PrimaryKey"
.Columns.Append "Test_ID"
.Columns("Test_ID").SortOrder = adSortDescending
.IndexNulls = adIndexNullsDisallow
.PrimaryKey = True
End With


'Aggiunge l'indice alla tabella
tbl.Indexes.Append idx

'Ripulisce
Set cat = Nothing

Proc_Exit:
Exit Sub

Proc_Err:
MsgBox Err.Description
Resume Proc_Exit

End Sub