ATUALIZACAO DE DADOS VIA SCRIPT
Amigos, fiz um sistema aqui de atualizacao de dados, para que meu cliente nao ficasse com as tabelas desatualizadas e evitasse aquele famoso erro 3265, so que acontece o seguinte, quando eu peço para rodar a aplicaçao, ele da erro 3010 falando que a tabela ja existe, eu coloquei o codigo on error resume next no inicio do codigo, mas mesmo assim ele nao cria a tabela, ele simplesmente fala que a tabela ja existe abortando a operaçao, ou seja, a tabela realmente existe eu so quero criar campos nela, vou postar o codigo para vcs verem se da para me ajudar, outra coisa que eu queria fazer era colcoar um LABEL e o sistema me dizer qual tabela esta processando no momento, se alguem pudar ajudar agradecerei muitooooo...
Private Sub btnOK_Click()
on error goto MsgErro
Screen.MousePointer = 11
With CONN
.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & [Ô]Data Source=[Ô] & txtCBadados.Text & [Ô];User Id=[Ô] & [Ô]Admin[Ô] & [Ô];Password=;[Ô]
.Execute [Ô]CREATE TABLE CadClientes(CliSituacao varchar(20))[Ô], adLockBatchOptimistic, adLockReadOnly
.Close
End With
MsgErro:
If Err.Number = [Ô]3010[Ô] Then
Resume Next
Else
MsgBox [Ô]Atualização de banco de dados concluÃda![Ô], vbInformation, [Ô]Checkup Service[Ô]
mensagem = MsgBox([Ô]Deseja Fechar[Ô], vbQuestion + vbYesNo, [Ô]Checkup Service[Ô])
If mensagem = vbYes Then
end
Screen.MousePointer = 0
End If
End If
End Sub
Private Sub btnOK_Click()
on error goto MsgErro
Screen.MousePointer = 11
With CONN
.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & [Ô]Data Source=[Ô] & txtCBadados.Text & [Ô];User Id=[Ô] & [Ô]Admin[Ô] & [Ô];Password=;[Ô]
.Execute [Ô]CREATE TABLE CadClientes(CliSituacao varchar(20))[Ô], adLockBatchOptimistic, adLockReadOnly
.Close
End With
MsgErro:
If Err.Number = [Ô]3010[Ô] Then
Resume Next
Else
MsgBox [Ô]Atualização de banco de dados concluÃda![Ô], vbInformation, [Ô]Checkup Service[Ô]
mensagem = MsgBox([Ô]Deseja Fechar[Ô], vbQuestion + vbYesNo, [Ô]Checkup Service[Ô])
If mensagem = vbYes Then
end
Screen.MousePointer = 0
End If
End If
End Sub
vc está usando o CREATE TABLE ele irá criar a tabela, nao verificar se ela existe vc deve usar o ALTER TABLE
ex:
ex:
Execute [Ô]ALTER TABLE CadClientes ADD CliSituacao varchar(20)[Ô], adLockBatchOptimistic, adLockReadOnly
Citação:Amigo, deu erro de sintaxe na definiçao de campo!!!MARCELO-TREZE escreveu:
vc está usando o CREATE TABLE ele irá criar a tabela, nao verificar se ela existe vc deve usar o ALTER TABLE
ex:Execute [Ô]ALTER TABLE CadClientes ADD CliSituacao varchar(20)[Ô], adLockBatchOptimistic, adLockReadOnly
qual o banco de dados
tente assim
Execute [Ô]ALTER TABLE CadClientes ADD COLUMN CliSituacao varchar(20)[Ô], adLockBatchOptimistic, adLockReadOnly
Se for banco de dados Access (MDB) eu uso uma função para abrir o banco dessa forma
crir em um modulo
Public Function OpenDB(sDataName As String) As Database
Dim Db As Database
On Error GoTo Trata_Erro
Do While True
Err.Clear
Set Db = Nothing
On Error Resume Next
Set Db = OpenDatabase(sDataName)
On Error GoTo 0
If (Err.Number = 0) Then
Exit Do
End If
Loop
Set OpenDB = Db
Exit Function
Trata_Erro:
Exit Function
End Function
----------------------------------------------------------------------------------
Veja essa sub que vai criar as tabelas ou altera-las
Private Sub Atualizar_Banco()
Dim Db As Database
[ô] Vai Criar a Tabela de pedidos de Compras
[ô] Exemplo para Criar a tabela
Set Db = OpenDB(Caminho & [Ô]Estoque.MDB[Ô])
On Error Resume Next
Db.Execute [Ô]CREATE TABLE PedidodeCompra [Ô] _
& [Ô]( Id AUTOINCREMENT , [Ô] _
& [Ô] FornecedorId LONG , [Ô] _
& [Ô] NomeFornecedor TEXT(50) , [Ô] _
& [Ô] FabricanteId LONG , [Ô] _
& [Ô] NomeFabricante TEXT(50) , [Ô] _
& [Ô] Data DATE , [Ô] _
& [Ô] Entrega TEXT(50) , [Ô] _
& [Ô] Pagamento TEXT(50) , [Ô] _
& [Ô] Contato TEXT(50) , [Ô] _
& [Ô] Observacoes TEXT(50) , [Ô] _
& [Ô] Produto TEXT(07) , [Ô] _
& [Ô] Tamanho TEXT(05) , [Ô] _
& [Ô] Descricao TEXT(50) , [Ô] _
& [Ô] Quantidade DOUBLE , [Ô] _
& [Ô] Unitario DOUBLE , [Ô] _
& [Ô] Chegou DOUBLE ) [Ô]
If Err.Number > 0 Then
Err.Clear
Err.Number = 0
End If
Db.Close
[ô] exemplo para Alterar a Tabela
[ô] Vai Alterar a Tabela de Material
Set Db = OpenDB(Caminho & [Ô]Estoque.MDB[Ô])
On Error Resume Next
Db.Execute ([Ô]ALTER TABLE Material ADD COLUMN Acabamento DOUBLE[Ô])
If Err.Number > 0 Then
Err.Clear
Err.Number = 0
End If
Db.Close
crir em um modulo
Public Function OpenDB(sDataName As String) As Database
Dim Db As Database
On Error GoTo Trata_Erro
Do While True
Err.Clear
Set Db = Nothing
On Error Resume Next
Set Db = OpenDatabase(sDataName)
On Error GoTo 0
If (Err.Number = 0) Then
Exit Do
End If
Loop
Set OpenDB = Db
Exit Function
Trata_Erro:
Exit Function
End Function
----------------------------------------------------------------------------------
Veja essa sub que vai criar as tabelas ou altera-las
Private Sub Atualizar_Banco()
Dim Db As Database
[ô] Vai Criar a Tabela de pedidos de Compras
[ô] Exemplo para Criar a tabela
Set Db = OpenDB(Caminho & [Ô]Estoque.MDB[Ô])
On Error Resume Next
Db.Execute [Ô]CREATE TABLE PedidodeCompra [Ô] _
& [Ô]( Id AUTOINCREMENT , [Ô] _
& [Ô] FornecedorId LONG , [Ô] _
& [Ô] NomeFornecedor TEXT(50) , [Ô] _
& [Ô] FabricanteId LONG , [Ô] _
& [Ô] NomeFabricante TEXT(50) , [Ô] _
& [Ô] Data DATE , [Ô] _
& [Ô] Entrega TEXT(50) , [Ô] _
& [Ô] Pagamento TEXT(50) , [Ô] _
& [Ô] Contato TEXT(50) , [Ô] _
& [Ô] Observacoes TEXT(50) , [Ô] _
& [Ô] Produto TEXT(07) , [Ô] _
& [Ô] Tamanho TEXT(05) , [Ô] _
& [Ô] Descricao TEXT(50) , [Ô] _
& [Ô] Quantidade DOUBLE , [Ô] _
& [Ô] Unitario DOUBLE , [Ô] _
& [Ô] Chegou DOUBLE ) [Ô]
If Err.Number > 0 Then
Err.Clear
Err.Number = 0
End If
Db.Close
[ô] exemplo para Alterar a Tabela
[ô] Vai Alterar a Tabela de Material
Set Db = OpenDB(Caminho & [Ô]Estoque.MDB[Ô])
On Error Resume Next
Db.Execute ([Ô]ALTER TABLE Material ADD COLUMN Acabamento DOUBLE[Ô])
If Err.Number > 0 Then
Err.Clear
Err.Number = 0
End If
Db.Close
Tópico encerrado , respostas não são mais permitidas