ATUALIZACAO DE DADOS VIA SCRIPT

XXXANGELSXXX 13/11/2009 19:43:38
#327715
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
MARCELO.TREZE 13/11/2009 19:58:28
#327716
Resposta escolhida
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

XXXANGELSXXX 14/11/2009 01:46:57
#327730
Citação:

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

Amigo, deu erro de sintaxe na definiçao de campo!!!
MARCELO.TREZE 14/11/2009 12:12:40
#327745
qual o banco de dados
MARCELO.TREZE 14/11/2009 12:15:57
#327746
tente assim

Execute [Ô]ALTER TABLE CadClientes ADD COLUMN CliSituacao varchar(20)[Ô], adLockBatchOptimistic, adLockReadOnly


EMANDRADE2002 14/11/2009 13:57:25
#327755
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
Tópico encerrado , respostas não são mais permitidas