INSERCAO DE UM CAMPO EM UMA TABELA

JULIO 15/07/2010 08:36:17
#347382
Alguém tem uma solução para o seguinte problema:
Tenho uma tabela em Acess (97) e o programa ao acessá-la verificaria se determinado campo existe, caso contrário faria a inserção deste novo campo sem prejuizo em relação aos dados já cadastrados.
Há alguma ferramenta que pode gerar esta solução?
Obrigado.
Julio C. Carvalho
JetCupom
MAXPAP 15/07/2010 09:40:32
#347402
Amigo, segue código abaixo. Existe sim como fazer isso.

 
ver460 = [Ô];pwd=123465[Ô]
vCbd = [Ô]c:\Banco.mdb[Ô]
[ô]Abrinco o banco
Set Banco = DBEngine.Workspaces(0).OpenDatabase(vCbd, False, False, ver460)


[ô]INÍCIO DA ATUALIZAÇÃO
[ô]********************************

[ô]verifica se existe a tabela Atualizacao
ExisteT = False
For Each Tabela In Banco.TableDefs
If Tabela.Name = [Ô]Atualizacao[Ô] Then
ExisteT = True
Exit For
End If
Next Tabela

If Not ExisteT Then
[ô]cria a tabela Atualizacao
Set Tabela = Banco.CreateTableDef([Ô]Atualizacao[Ô])

[ô]cria o campo Versao
Set Campo = Tabela.CreateField([Ô]Versao[Ô], dbText, 10)
Campo.AllowZeroLength = True
Tabela.Fields.Append Campo

Banco.TableDefs.Append Tabela
End If



T+
JULIO 15/07/2010 17:18:29
#347486
Caro MaxPap
Obrigado pela ajuda, somente uma coisa:
Neste exemplo apresentado a rotina cria uma tabela nova, como fazer para checar se em uma tabela existente existe um campo e caso contrário como incluí-lo.
Obrigado mais uma vez.
Julio C. Carvalho
MAXPAP 15/07/2010 17:31:22
#347487
Segue,


  
[ô]verifica se existe o campo BonusTempo na tabela Grupos
ExisteC = False
Set Tabela = Banco.TableDefs([Ô]Grupos[Ô])
For Each campo In Banco.TableDefs([Ô]Grupos[Ô]).Fields
If campo.Name = [Ô]BonusTempo[Ô] Then
ExisteC = True
Exit For
End If
Next campo

[ô]cria o campo BonusTempo e atualiza os valores
If Not ExisteC Then
Set campo = Tabela.CreateField([Ô]BonusTempo[Ô], dbText, 30)
campo.AllowZeroLength = True
Tabela.Fields.Append campo
End If




T+
JULIO 16/07/2010 08:52:40
#347515
Prezado MaxPap
Show de bola... resolvi o problema.
Agradeço mais uma vez sua generosidade.
Somente uma dúvida: Posso fazer uma alteração na estrutura da base de dados com a tabela conectada no programa? Falo isso pelo seguinte: Quando abro o banco de dados, verifico a versão do programa e comparo com uma variável de campo para saber se haverá alteração, caso positivo, o sistema iria modificar a estrutura indicada.
Obrigado mais uma vez.
Um abraço
Julio
Tópico encerrado , respostas não são mais permitidas