COMO CRIAR UM .MDB VIA CODIGO E COM SENHA??
Bom Dia, pessoal....
Eu já sei criar um arquivo .MDB via código pelo VB, mas, eu gostaria de saber, se tem como eu criar este arquivo via código, e na criação dele, definir a senha dele, tem como fazer isso via código???
Eu já sei criar um arquivo .MDB via código pelo VB, mas, eu gostaria de saber, se tem como eu criar este arquivo via código, e na criação dele, definir a senha dele, tem como fazer isso via código???
Option Explicit
Option Base 1 'Lembra para que serve esta declaração ?
Dim area As Workspace 'Define área de trabalho
Dim banco As Database 'Define área para o .MDB
Dim tabela As TableDef 'Define area para criar uma tabela
Dim campos(6) As Field 'Define área para criar os campos
Dim indice As Index 'Define área para criar um Ãndice
Dim idxcampo As Field 'Define área do campo do Ãndice
Dim tabcli As Recordset 'Usado para abrir a tabela
Dim esttab As TableDef
Dim estcampos(2) As Field
Dim tabest As Recordset
Dim relação As Relation
Dim relcampo As Field
Private Sub cmdCriaBanco_Click()
On Error GoTo erro:
Set area = DBEngine.Workspaces(0)
'Cria a partir do mecanismo "DAO" uma área de trabalho
Set banco = area.CreateDatabase(App.Path & "\livro.mdb", _
dbLangGeneral, dbVersion30)
'Cria o banco de dados .MDB no formato 3.0
Set tabela = banco.CreateTableDef("Clientes")
'Cria a tabela denominada "Clientes"
Set campos(1) = tabela.CreateField("cli_código", dbInteger)
'Cria um campo dentro da tabela Clientes
tabela.Fields.Append campos(1)
'Efetiva a adição do campo dentro da tabela
Set campos(2) = tabela.CreateField("cli_nome", dbText, 40)
tabela.Fields.Append campos(2)
Set campos(3) = tabela.CreateField("cli_endereço", dbText, 40)
tabela.Fields.Append campos(3)
Set campos(4) = tabela.CreateField("cli_cidade", dbText, 20)
tabela.Fields.Append campos(4)
Set campos(5) = tabela.CreateField("cli_estado", dbText, 2)
tabela.Fields.Append campos(5)
Set campos(6) = tabela.CreateField("cli_cep", dbText, 9)
tabela.Fields.Append campos(6)
banco.TableDefs.Append tabela
'Efetiva a adição da tabela Clientes dentro do Banco de Dados
Set indice = tabela.CreateIndex("ChavePrimária")
'Cria um Ãndice para a tabela Clientes
indice.Primary = True 'Chave Primária
indice.Unique = True 'Não aceita dados duplicados
'Define atributos para o Ãndice
Set idxcampo = indice.CreateField("cli_código")
'Cria o campo que será usado com Ãndice
indice.Fields.Append idxcampo
'Efetiva a adição do Ãndice na tabela em questão
tabela.Indexes.Append indice
'Efetiva a adição do Ãndice ao objeto TableDef
'Criando a Tabela de Siglas de Estado
Set esttab = banco.CreateTableDef("estados")
Set estcampos(1) = esttab.CreateField("est_sigla", dbText, 2)
esttab.Fields.Append estcampos(1)
Set estcampos(2) = esttab.CreateField("est_descrição", dbText, 20)
esttab.Fields.Append estcampos(2)
banco.TableDefs.Append esttab
Set indice = esttab.CreateIndex("ChavePrimária")
indice.Primary = True
indice.Unique = True
Set idxcampo = indice.CreateField("est_sigla")
indice.Fields.Append idxcampo
esttab.Indexes.Append indice
'Criando um Relacionamento
Set relação = banco.CreateRelation("Estados_Clientes")
relação.Table = "estados" 'Esta é a tabela PAI
relação.ForeignTable = "clientes" 'Esta é a tabela FILHA
relação.Attributes = dbRelationUpdateCascade
Set relcampo = relação.CreateField("est_sigla")
relcampo.ForeignName = "cli_estado"
relação.Fields.Append relcampo
banco.Relations.Append relação
'O relacionamento foi criado
cmdCriaBanco.Enabled = False 'Desabilita o botão
cmdAbrir.Enabled = True 'Habilita o botão
cmdDeletar.Enabled = True
cmdAbrir.SetFocus 'Foco para o botão Abrir
Exit Sub 'Finaliza a rotina
erro:
MsgBox Format(Err) & "-" & Error
Resume saÃda
saÃda:
End Sub
Option Base 1 'Lembra para que serve esta declaração ?
Dim area As Workspace 'Define área de trabalho
Dim banco As Database 'Define área para o .MDB
Dim tabela As TableDef 'Define area para criar uma tabela
Dim campos(6) As Field 'Define área para criar os campos
Dim indice As Index 'Define área para criar um Ãndice
Dim idxcampo As Field 'Define área do campo do Ãndice
Dim tabcli As Recordset 'Usado para abrir a tabela
Dim esttab As TableDef
Dim estcampos(2) As Field
Dim tabest As Recordset
Dim relação As Relation
Dim relcampo As Field
Private Sub cmdCriaBanco_Click()
On Error GoTo erro:
Set area = DBEngine.Workspaces(0)
'Cria a partir do mecanismo "DAO" uma área de trabalho
Set banco = area.CreateDatabase(App.Path & "\livro.mdb", _
dbLangGeneral, dbVersion30)
'Cria o banco de dados .MDB no formato 3.0
Set tabela = banco.CreateTableDef("Clientes")
'Cria a tabela denominada "Clientes"
Set campos(1) = tabela.CreateField("cli_código", dbInteger)
'Cria um campo dentro da tabela Clientes
tabela.Fields.Append campos(1)
'Efetiva a adição do campo dentro da tabela
Set campos(2) = tabela.CreateField("cli_nome", dbText, 40)
tabela.Fields.Append campos(2)
Set campos(3) = tabela.CreateField("cli_endereço", dbText, 40)
tabela.Fields.Append campos(3)
Set campos(4) = tabela.CreateField("cli_cidade", dbText, 20)
tabela.Fields.Append campos(4)
Set campos(5) = tabela.CreateField("cli_estado", dbText, 2)
tabela.Fields.Append campos(5)
Set campos(6) = tabela.CreateField("cli_cep", dbText, 9)
tabela.Fields.Append campos(6)
banco.TableDefs.Append tabela
'Efetiva a adição da tabela Clientes dentro do Banco de Dados
Set indice = tabela.CreateIndex("ChavePrimária")
'Cria um Ãndice para a tabela Clientes
indice.Primary = True 'Chave Primária
indice.Unique = True 'Não aceita dados duplicados
'Define atributos para o Ãndice
Set idxcampo = indice.CreateField("cli_código")
'Cria o campo que será usado com Ãndice
indice.Fields.Append idxcampo
'Efetiva a adição do Ãndice na tabela em questão
tabela.Indexes.Append indice
'Efetiva a adição do Ãndice ao objeto TableDef
'Criando a Tabela de Siglas de Estado
Set esttab = banco.CreateTableDef("estados")
Set estcampos(1) = esttab.CreateField("est_sigla", dbText, 2)
esttab.Fields.Append estcampos(1)
Set estcampos(2) = esttab.CreateField("est_descrição", dbText, 20)
esttab.Fields.Append estcampos(2)
banco.TableDefs.Append esttab
Set indice = esttab.CreateIndex("ChavePrimária")
indice.Primary = True
indice.Unique = True
Set idxcampo = indice.CreateField("est_sigla")
indice.Fields.Append idxcampo
esttab.Indexes.Append indice
'Criando um Relacionamento
Set relação = banco.CreateRelation("Estados_Clientes")
relação.Table = "estados" 'Esta é a tabela PAI
relação.ForeignTable = "clientes" 'Esta é a tabela FILHA
relação.Attributes = dbRelationUpdateCascade
Set relcampo = relação.CreateField("est_sigla")
relcampo.ForeignName = "cli_estado"
relação.Fields.Append relcampo
banco.Relations.Append relação
'O relacionamento foi criado
cmdCriaBanco.Enabled = False 'Desabilita o botão
cmdAbrir.Enabled = True 'Habilita o botão
cmdDeletar.Enabled = True
cmdAbrir.SetFocus 'Foco para o botão Abrir
Exit Sub 'Finaliza a rotina
erro:
MsgBox Format(Err) & "-" & Error
Resume saÃda
saÃda:
End Sub
LCSD, nesse exemplo o Option Base 1 só para começar a contar do 1 e nao do 0
ex:
se eu colocar
campos(6) as filed
só vai existir os campos
campos(1),campos(2),campos(3),campos(4),campos(5),campos(6)
ou seja o campos(0) nao existe
ex:
se eu colocar
campos(6) as filed
só vai existir os campos
campos(1),campos(2),campos(3),campos(4),campos(5),campos(6)
ou seja o campos(0) nao existe
Tópico encerrado , respostas não são mais permitidas