CRIAR-TABELAS E CAMPOS-VIA CÓDIGO

JOHNSTEVE 12/12/2017 16:42:30
#478395
Boa tarde Galera, Estou montando um Exe. para atualizar a base de dados de meus clientes. para ser uma atualização rápida. Hoje atualizo em meus clientes manual, na unha.. criando as tabelas e campos, Uso banco de Dados [txt-color=#e80000] Access 2013 [/txt-color]

* minha dúvida é, como faço para comparar na base de dados se Consta uma determinada Tabela,
tipo, estou executando para criar a tabela chamado tbl_Controle_Cheques, como faço a comparação se essa tabela existe no banco..
  if tbl_Controle_Cheques existe no banco
não faço nada
se não existir..
crio a tabela


assim q faço para criar a tabela e campos
   Using con As OleDbConnection = GetConnection()
Try
con.Open()
Dim sql As String = [Ô]CREATE TABLE tbl_Operacao_Interna (id_operacao int Identity,descricao_operacao varchar(200))[Ô]
Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
cmd.ExecuteNonQuery()
MsgBox([Ô]Tabela Operação Interna criada com Sucesso![Ô])

Catch ex As Exception
MsgBox([Ô]Erro: Ao Criar Nova Tabela - Operação Interna [Ô] & ex.ToString)
End Try
End Using


* agora uma outra Dúvida que queria saber.. como faço para comparar um Campo em uma determinada Tabela que estou querendo atualizar.
tipo,
  Using con As OleDbConnection = GetConnection()
Dim dr As OleDbDataReader = Nothing
Try
con.Open()
Dim sql As String
Dim cmd As OleDbCommand
sql = [Ô]ALTER TABLE NFe_Dados ADD Vlr_Total_Produtos VARCHAR(80),Bs_Calculo_ICMS VARCHAR(80),Vlr_ICMS VARCHAR(80),Bs_Calculo_ICMS_ST VARCHAR(80),Vlr_ICMS_ST VARCHAR(80),Vlr_Total_Frete VARCHAR(80),Vlr_Total_Seguro VARCHAR(80),Vlr_Total_Desconto VARCHAR(80),Vlr_Total_OutrDesp VARCHAR(80),Vlr_Total_IPI VARCHAR(80),Ind_Pagamento VARCHAR(10)[Ô]
cmd = New OleDbCommand(sql, con)
cmd.ExecuteNonQuery()
MsgBox([Ô]Tabela [ô]NFe_Dados[ô] Atualizado com Sucesso![Ô])

Catch ex As Exception
MsgBox([Ô]Erro: Ao Atualizar a Tabela [ô]NFe_Dados[Ô] & ex.ToString)
Finally
con.Close()
End Try
End Using

como faço para comparar se nessa tabela existe um campo que quero acrescentar.?
nessa tabela quero acrescentar o campo chamado [Ô]Campo_Teste[Ô]
queria comparar se existe nessa tabela esse campo..

[txt-color=#007100] Se existir não faço nada
se não existir eu crio ele [/txt-color]
GUIMORAES 12/12/2017 17:33:43
#478397
Resposta escolhida
Bom, como não uso access, mas acredito que ele deve ter uma operação próxima a de um banco de dados de verdade, onde você pode fazer um select nos objetos do banco de dados e verificar se determinado objeto existe.
Em uma breve pesquisa, achei o seguinte.

  
Select id From msysobjects Where type=1 and name= [ô]tbl_Operacao_Interna[ô]


Aí, dependendo do resultado do select, que pode retornar null ou qualquer outra informação (que você terá que testar), você procede com a criação da tabela.
O mesmo serve para um campo na tabela, mas aí você pode dar uma aprofundada no assunto com base nas informações que te passei.

No sql server é assim.
  

SELECT 1
FROM [database].INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE=[ô]BASE TABLE[ô]
AND TABLE_NAME=[ô]Minha Tabela[ô]

KERPLUNK 12/12/2017 18:20:48
#478398

SELECT 1 FROM sys.tables WHERE name = [ô]nome_da_tabela[ô]
Tópico encerrado , respostas não são mais permitidas