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....