olha se ajuda esta rotina para adaptar banco de dados:
Dim vgBcD As Database
Dim vgValorDefa As Variant
Dim vgTamaCpo As Integer
Dim vgTipoCpo As Integer
Dim vgAtribCpo As Long
Dim vgTba As TableDef
Dim vgCpo As Field
Dim vgInd As Index
Dim vgRel As Relation
'cria a tabela
Set vgTba = vgBcD.CreateTableDef() 'cria uma nova tabela
vgTba.Name = "Tabela"
'cria o campo
Set vgCpo = vgTba.CreateField()
vgCpo.Name = "Campo"
'tipo do campo
vgAtribCpo = dbUpdatableField 'atributo do campo
vgValorDefa = 0 'valor inicial do campo
Select Case vgSimbolo$ 'qual o tipo do campo?
Case "LONGO" '* LONGO
vgTipoCpo = dbLong 'numérico entre -2.147.483.648
vgTamaCpo = 4 'a 2.147.483.648 inclusive
Case "LOGICO" '* LóGICO
vgTipoCpo = dbBoolean 'contém yes/no, true/false
vgTamaCpo = 1
vgValorDefa = False
Case "BYTE" '* BYTE
vgTipoCpo = dbByte 'numérico entre 0 e 255
vgTamaCpo = 1
Case "INTEIRO" '* INTEIRO
vgTipoCpo = dbInteger 'numérico entre -32768 a
vgTamaCpo = 2 '32767 inclusive
Case "CONTADOR" '* CONTADOR (longo)
vgTipoCpo = dbLong 'campo long incrementado
vgTamaCpo = 4 'automaticamente
vgAtribCpo = vgAtribCpo + dbAutoIncrField
Case "DINHEIRO" '* DINHEIRO
vgTipoCpo = dbCurrency 'numérico com até 11 dígitos
vgTamaCpo = 8
Case "SIMPLES" '* SIMPLES
vgTipoCpo = dbSingle 'numérico com decimal
vgTamaCpo = 4 'armazenado em 4 byts
Case "DUPLA" '* DUPLA
vgTipoCpo = dbDouble 'numérico
vgTamaCpo = 8 'armazenado em 8 bytes
Case "DATA" '* DATA
vgTipoCpo = dbDate 'armazena data ou hora
vgTamaCpo = 8
vgValorDefa = Null
Case "TEXTO" '* TEXTO
vgTipoCpo = dbText 'tipo caracter
vgIx = InStr(vgLinhaAtual$ + " ", " ") 'separa diretiva
vgTamaCpo = Val(Mid$(vgLinhaAtual$, vgIx)) 'pega o tamanho do campo
i = i + Len(Str$(vgTamaCpo)) 'ajusta i para checar se há atributos
vgValorDefa = Chr$(34) + Chr$(34) 'default para o campo ""
Case "IMAGEM" '* IMAGEM
vgTipoCpo = dbLongBinary 'sem limitação
vgTamaCpo = 0 'tamanho variado
vgAtribCpo = vgAtribCpo + dbVariableField
vgValorDefa = Null
Case "MEMO" '* MEMO
vgTipoCpo = dbMemo 'texto de 1.2GB
vgTamaCpo = 0
vgValorDefa = Chr$(34) + Chr$(34) 'defautl ""
Case Else
GoTo DeuErro 'campo indeterminado, cai fora...
End Select
With vgCpo 'salva a definição para este campo
.Size = vgTamaCpo 'tamanho
.Type = vgTipoCpo 'tipo
.Attributes = vgAtribCpo 'atributos
If Not IsNull(vgValorDefa) And vgCpo.Name <> "Cod~lan" Then
.DefaultValue = vgValorDefa 'tem valor default vamos passar para o BD
End If
If vgTipoCpo = dbText Or _
vgTipoCpo = dbMemo Then 'campo texto e memo
.AllowZeroLength = True 'vamos permitir ""
End If
End With
vgTba.Fields.Append vgCpo 'coloca o campo na tabela
'cria um índice
Set vgInd = vgTba.CreateIndex()
vgInd.Name = "nome do indice"
'definições do índice
With vgInd
.Primary = True 'se é primária obrigatoriamente
.Unique = True 'tem que ser única
End With
'campos que compoe o indice
vgInd.Fields = "Codigo_do_associado; Codigo_do_servico"
'propriedades para deixar entrar indice nulo
vgInd.Required = False
vgInd.IgnoreNulls = True
vgTba.Indexes.Append vgInd 'anexa o indice na tabela
vgBcD.TableDefs.Append vgTba 'adiciona a tabela ao banco de dados
'relacionamentos
Set vgRel = vgBcD.CreateRelation("nome da relacao")
vgRel.Table = "tabelabase"
vgRel.ForeignTable = "tabelaestrangeira"
'tipo
Case "UNICO" 'um a um
vgAtribCpo = vgAtribCpo + dbRelationUnique
Case "SEM INTEGRIDADE" 'sem integridade referencial
vgAtribCpo = vgAtribCpo + dbRelationDontEnforce
Case "INHERITED" 'com integridade referencial
vgAtribCpo = vgAtribCpo + dbRelationInherited
Case "ATUALIZA CASCATA" 'atualiza a tabela relacionada
vgAtribCpo = vgAtribCpo + dbRelationUpdateCascade
Case "EXCLUI CASCATA" 'exclui registro relacionado
vgAtribCpo = vgAtribCpo + dbRelationDeleteCascade
Case "ESQUERDA" 'não exige que o reg estrangeiro exista
vgAtribCpo = vgAtribCpo + dbRelationLeft
Case "DIREITA" 'pode ter reg estrangeiros sem referência na base
vgAtribCpo = vgAtribCpo + dbRelationRight
vgRel.Attributes = vgAtribCpo 'anexa o relacionamento na tabela
Set vgCpo = vgRel.CreateField("campotabbase")
vgCpo.ForeignName = "campotabestrangeira"
vgRel.Fields.Append vgCpo 'coloca campo no relacionamento
vgBcD.Relations.Append vgRel 'anexa relacionamento ao BD