DAO - Criando
tabelas e definindo índices. ![]()
Vou mostrar como criar uma tabela e definir índices usando o bom e velho DAO. No dia a dia para pequenas aplicações ele ainda é bem melhor que a ADO.
A primeira coisa que devemos fazer é definir como será nossa tabela. Como exemplo irei usar uma tabela Contatos definida da seguinte forma:
| Campo | Propriedade | Valor |
| ClienteCodigo | Name | ClienteCodigo |
| Required | True | |
| Type | dbInteger | |
| ClienteNome | Name | ClienteNome |
| Required | True | |
| Size | 50 | |
| AllowZeroLength | False | |
| ClienteEndereco | Name | ClienteEndereco |
| Required | True | |
| Size | 50 | |
| AllowZeroLength | False | |
| Type | dbText | |
| ClienteFone | Name | ClienteFone |
| Required | True | |
| AllowZerolength | False | |
| Type | dbText |
Vamos definir agora a chave primária para a tabela Contatos: (O campo ClienteCodigo será usado como chave primária ). O nome do índice será PrimaryKey.
| Indice | Propriedade | Valor |
| Primário - Campo ( ClienteCodigo ) | Name | PrimaryKey |
| Primary | True | |
| Requerid | True | |
| Unique | True |
Agora vamos criar a tabela e o índice como definidos acima. Apenas recordando que para criar um índice em uma tabela devemos ter :
Então vamos lá:
1-) Inicie um novo projeto no VB e faça uma referência a DAO 3.X
2-) O código é o seguinte: Você pode colocá-lo onde melhor lhe aprouver. Aqui o código esta sendo acionado pelo evento Click de um botão de comando.
Private Sub Command1_Click()
Dim db As Database
Dim tabela As TableDef
Dim campos(4) As Field
Dim indice As Index
Dim ClienteCodigo As Field
Dim i As Integer
On Error GoTo trata_erro
Set db = DBEngine.Workspaces(0).OpenDatabase("c:\teste\biblio.mdb")
Set tabela = db.CreateTableDef("Contatos")
Set campos(0) = tabela.CreateField("ClienteCodigo", dbInteger)
Set campos(1) = tabela.CreateField("ClienteNome", dbText, 50)
Set campos(2) = tabela.CreateField("ClienteEndereco", dbText, 50)
Set campos(3) = tabela.CreateField("ClienteFone", dbText, 50)
campos(0).Required = True
tabela.Fields.Append campos(0)
For i = 1 To 3
campos(i).Required = True
campos(i).AllowZeroLength = False
tabela.Fields.Append campos(i)
Next
'cria objeto Index
Set indice = tabela.CreateIndex("PrimaryKey")
'define as propriedades dos indice
indice.Primary = True
indice.Unique = True
indice.Required = True
'cria objeto field para anexar o indice
Set ClienteCodigo = indice.CreateField("ClienteCodigo")
'anexa o campo ao indiece e o indice a tabela
indice.Fields.Append ClienteCodigo
tabela.Indexes.Append indice
db.Close
Set db = Nothing
Set tabela = Nothing
MsgBox "Tabela e indice criados com sucesso !"
Exit Sub
trata_erro:
MsgBox Err.Number & " # " & Err.Description
End Sub
|
E, é só isto.... ![]()