Extrair DDL Access em SQL - Como Extrair Criar Tabelas Access em SQL - Guia Do Excel
Extrair DDL Access em SQL - Como Extrair Criar Tabelas Access em SQL - Guia Do Excel
Extrair DDL Access em SQL - Como Extrair Criar Tabelas Access em SQL - Guia Do Excel
Pense por exemplo que você tem um sistema que você distribui para vários
clientes e ele possui um banco de dados access.
Você poderia por exemplo enviar uma atualização via criação de tabelas e
alteração e inclusão de campos para executar na sua planilha Excel ao abrir ela.
Isso pode ser feito manualmente, claro, mas pode ser um trabalho grande,
principalmente quando se trata de muitos códigos.
Pensando nesta situação o Adelson criou um código que ao ser executado cria
um arquivo txt com toda a criação em SQL da DDL, da criação de tabelas,
relacionamentos, chaves, tudo criado dinamicamente e já em um formato que
pode ser colocado em um módulo VBA Excel e executado para a criação de toda
a estrutura da tabela novamente.
Como criar o script SQL de criação de tabelas
do Access automaticamente
Para extrair o script SQL de criação da sua estrutura de um banco de dados
Access siga as seguintes etapas:
1. Abra o seu projeto no Access
2. Pressione ALT+F11 para acessar o seu código VBA
3. Crie um módulo. Para criar o módulo clique no VBE no menu Inserir-
>Módulo
4. No módulo criado cole o seguinte código VBA
Dim DB As Database
Dim tdf As TableDef
Dim fld As DAO.Field
Dim ndx As DAO.Index
Dim strSql As String
Dim strFlds As String
Dim strCn As String
Dim fs, f
Set DB = CurrentDb
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.createTextFile("C:\Temp\Schema.txt")
strFlds = ""
Case dbText
'No look-up fields
strFlds = strFlds & "Text (" & fld.Size & ")"
Case dbLong
If (fld.Attributes And dbAutoIncrField) = 0& Then
strFlds = strFlds & "Long"
Else
strFlds = strFlds & "Counter"
End If
Case dbBoolean
strFlds = strFlds & "YesNo"
Case dbByte
strFlds = strFlds & "Byte"
Case dbInteger
strFlds = strFlds & "Integer"
Case dbCurrency
strFlds = strFlds & "Currency"
Case dbSingle
strFlds = strFlds & "Single"
Case dbDouble
strFlds = strFlds & "Double"
Case dbDate
strFlds = strFlds & "DateTime"
Case dbBinary
strFlds = strFlds & "Binary"
Case dbLongBinary
strFlds = strFlds & "OLE Object"
Case dbMemo
If (fld.Attributes And dbHyperlinkField) = 0&
Then
strFlds = strFlds & "Memo"
Else
strFlds = strFlds & "Hyperlink"
End If
Case dbGUID
strFlds = strFlds & "GUID"
End Select
Next
strSql = strSql & Mid(strFlds, 2) & " )""" & vbCrLf &
"Currentdb.Execute strSQL"
'Indexes
For Each ndx In tdf.Indexes
If ndx.Unique Then
strSql = "strSQL=""CREATE UNIQUE INDEX "
Else
strSql = "strSQL=""CREATE INDEX "
End If
strSql = strSql & "[" & ndx.Name & "] ON [" &
tdf.Name & "] ("
strFlds = ""
strCn = ""
If ndx.Primary Then
strCn = " PRIMARY"
End If
If ndx.Required Then
strCn = strCn & " DISALLOW NULL"
End If
If ndx.IgnoreNulls Then
strCn = strCn & " IGNORE NULL"
End If
f.WriteLine ""
f.WriteLine "End Sub"
f.Close
End Sub
Pronto. Esse código é responsável pela criação de uma DDL pronta para ser
executada dentro do VBA do Excel ou Access para a criação de toda a estrutura
do banco de dados atual.
Criar tabelas access automaticamente no Excel
O arquivo com a estrutura SQL para a criação do banco de dados completo
acima já está pronta para ser executada diretamente no Excel por exemplo.
Para isso você deve conectar o Excel no banco de dados aonde deseja criar esta
estrutura e depois somente copiar o código fonte, por exemplo.
4. Cole o seguinte código abaixo e depois abra o txt gerado de SQL para
criação de tabelas access e cole abaixo do código.
Option Explicit
Currentdb.Open SQL
End If
End Sub
Conclusão e agradecimento
A extração do SQL de criação de estrutura das tabelas access deveria ser algo
nativo neste banco de dados.
Felizmente o mestre Adelson Silva desenvolveu este código que auxilia muito
nesta tarefa e que pode ser usado para:
1. Replicar um banco de dados em uma base limpa sem ter que limpar todas
as tabelas e zerar os contadores
2. Usar parte do código para atualizar bancos de dados de clientes sem ter
que alterar a estrutura do access manualmente
3. Analisar a estrutura SQL em busca de erros estruturais
Então, mais uma vez agradecemos o trabalho do Adelson Silva, clique no
nome dele para acessar o seu Linkedin.
Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em
Excel à todos.
Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.
ENVIAR