CREATE TABLE NO ACCESS
Estou precisando criar tabelas dinà ¢micamente no Access. Alguém já precisou fazer isso e tem algum exemplo?
Grato
Grato
Exemplo:
CriarBanco app.path & " este.mdb","Tabela",True,"Chave","1",dbinteger,"Campo2","30",dbtext
Public Function CriarBanco(ByVal Caminho As String, ByVal Tabela As String, ByVal ChavePrimaria As Boolean, ParamArray Campos()) As Boolean
Dim Banco As DAO.Database
Dim i As Long
On Error GoTo TrataErro
CriarBanco = False
If Len(Dir(Caminho, vbNormal)) = 0 Then
Set Banco = CreateDatabase(Caminho, dbLangGeneral)
Else
Set Banco = OpenDatabase(Caminho)
End If
Dim Td As New DAO.TableDef
Dim Fld() As New DAO.Field
Dim Idx As New DAO.Index
Dim Td1 As New DAO.TableDef
ReDim Fld(1 To (UBound(Campos) + 1) \ 3)
Td.Name = Tabela ' Set the table name.
' Create Fields.
For i = LBound(Fld) To UBound(Fld) ' Set properties for fields.
Fld(i).Name = Campos(3 * (i - 1)) 'Nome do campo
Fld(i).Type = Campos(3 * (i - 1) + 2) 'tipo de dados
Fld(i).Size = Campos(3 * (i - 1) + 1) 'Tamanho de campo
'Fld(i).FieldSize = Campos(i + 1)
Td.Fields.Append Fld(i)
Next i
' Create Indexes.
Idx.Name = Choose(1, "key" & Campos(0))
Idx.Fields = Choose(1, Campos(0))
Idx.Primary = Choose(1, ChavePrimaria)
Idx.Unique = Choose(1, ChavePrimaria)
Td.Indexes.Append Idx
Banco.TableDefs.Append Td
CriarBanco = True
Banco.Close
Exit Function
TrataErro:
CriarBanco = False
End Function
CriarBanco app.path & " este.mdb","Tabela",True,"Chave","1",dbinteger,"Campo2","30",dbtext
Public Function CriarBanco(ByVal Caminho As String, ByVal Tabela As String, ByVal ChavePrimaria As Boolean, ParamArray Campos()) As Boolean
Dim Banco As DAO.Database
Dim i As Long
On Error GoTo TrataErro
CriarBanco = False
If Len(Dir(Caminho, vbNormal)) = 0 Then
Set Banco = CreateDatabase(Caminho, dbLangGeneral)
Else
Set Banco = OpenDatabase(Caminho)
End If
Dim Td As New DAO.TableDef
Dim Fld() As New DAO.Field
Dim Idx As New DAO.Index
Dim Td1 As New DAO.TableDef
ReDim Fld(1 To (UBound(Campos) + 1) \ 3)
Td.Name = Tabela ' Set the table name.
' Create Fields.
For i = LBound(Fld) To UBound(Fld) ' Set properties for fields.
Fld(i).Name = Campos(3 * (i - 1)) 'Nome do campo
Fld(i).Type = Campos(3 * (i - 1) + 2) 'tipo de dados
Fld(i).Size = Campos(3 * (i - 1) + 1) 'Tamanho de campo
'Fld(i).FieldSize = Campos(i + 1)
Td.Fields.Append Fld(i)
Next i
' Create Indexes.
Idx.Name = Choose(1, "key" & Campos(0))
Idx.Fields = Choose(1, Campos(0))
Idx.Primary = Choose(1, ChavePrimaria)
Idx.Unique = Choose(1, ChavePrimaria)
Td.Indexes.Append Idx
Banco.TableDefs.Append Td
CriarBanco = True
Banco.Close
Exit Function
TrataErro:
CriarBanco = False
End Function
Tópico encerrado , respostas não são mais permitidas