ERRO NA GRAVACAO
Pessoal boa tarde
Estou aprendendo vb 6
Muitas vezes sou repetetivo,pq tenho dificuldades em entender logo de cara.
Há alguns dias postei como inserir mais dados do mesmo produto no bd.O pessoal me ajudou bastante.
Agora gostaria que o botão gravar soubesse qdo o produto já estava gravado e qdo fosse a primeira vez que o produto é gravado
Sempre que clico no botão gravar aparece essa msg
NUMERO DE VALORES DA CONSULTA E CAMPOS DE DESTINO NÃO COINCIDEM
Então lendo nos livros e apostila q tenho escrevi esses códigos
Declarei vInclusao as Boolean no General
Private Sub txtCódigo_LostFocus()
Dim cnnComando As New ADODB.Command
Dim rs As New ADODB.Recordset
With cnnComando
.ActiveConnection = cnn
.CommandType = adCmdText
.CommandText = [Ô] SELECT * FROM Produtos WHERE Código =[Ô] & txtCódigo.Text & [Ô];[Ô]
Set rs = .Execute
End With
With rs
If .EOF And .BOF Then
LimparDados
[ô]Identifica a operacao como Inclusão:
vInclusao = True
Else
txtNome.Text = !Nome
txtFabricante.Text = !Fabricante
txtQuantidade.Text = !Quantidade
txtPreçoCompra.Text = !PreçoCompra
txtPorcentagem.Text = !porcentagem
txtPreçoVenda.Text = !PreçoVenda
txtObservação.Text = !Observação
vInclusao = False
End If
End With
txtCódigo.Enabled = False
End Sub
Private Sub cmdGravar_Click()
Dim cnnComando As New ADODB.Command
With cnnComando
.ActiveConnection = cnn
.CommandType = adCmdText
If vInclusao Then
.CommandText = [Ô]INSERT INTO Produtos[Ô] & _
[Ô](Código,Nome,Fabicante,PreçoCompra,Porcentagem,PreçoVenda,Quantidade,Observação)[Ô] & _
[Ô] Values(txtCódigo),(txtNome),(txtFabricante),(txtPreçoCompra),(txtPorcentagem),(txtPreçoVenda),(txtquantidade),(txtObservação);[Ô]
Else
.CommandText = [Ô]Update Produtos set[Ô] & _
[Ô]Nome=[ô][Ô] & txtNome.Text & [Ô][ô],[Ô] & _
[Ô]Fabricante=[ô][Ô] & txtFabricante.Text & [Ô][ô],[Ô] & _
[Ô]PreçoCompra=[ô][Ô] & txtPreçoCompra.Text & [Ô][ô],[Ô] & _
[Ô]Porcentagem=[ô][Ô] & txtPorcentagem.Text & [Ô][ô],[Ô] & _
[Ô]PreçoVenda=[ô][Ô] & txtPreçoVenda.Text & [Ô][ô],[Ô] & _
[Ô]Quantidade=[ô][Ô] & txtQuantidade.Text & [Ô][ô],[Ô] & _
[Ô]WHERE Código=[Ô] & txtCódigo.Text & [Ô];[Ô]
End If
.Execute
End With
End Sub
Desde já agradeço a todos
Estou aprendendo vb 6
Muitas vezes sou repetetivo,pq tenho dificuldades em entender logo de cara.
Há alguns dias postei como inserir mais dados do mesmo produto no bd.O pessoal me ajudou bastante.
Agora gostaria que o botão gravar soubesse qdo o produto já estava gravado e qdo fosse a primeira vez que o produto é gravado
Sempre que clico no botão gravar aparece essa msg
NUMERO DE VALORES DA CONSULTA E CAMPOS DE DESTINO NÃO COINCIDEM
Então lendo nos livros e apostila q tenho escrevi esses códigos
Declarei vInclusao as Boolean no General
Private Sub txtCódigo_LostFocus()
Dim cnnComando As New ADODB.Command
Dim rs As New ADODB.Recordset
With cnnComando
.ActiveConnection = cnn
.CommandType = adCmdText
.CommandText = [Ô] SELECT * FROM Produtos WHERE Código =[Ô] & txtCódigo.Text & [Ô];[Ô]
Set rs = .Execute
End With
With rs
If .EOF And .BOF Then
LimparDados
[ô]Identifica a operacao como Inclusão:
vInclusao = True
Else
txtNome.Text = !Nome
txtFabricante.Text = !Fabricante
txtQuantidade.Text = !Quantidade
txtPreçoCompra.Text = !PreçoCompra
txtPorcentagem.Text = !porcentagem
txtPreçoVenda.Text = !PreçoVenda
txtObservação.Text = !Observação
vInclusao = False
End If
End With
txtCódigo.Enabled = False
End Sub
Private Sub cmdGravar_Click()
Dim cnnComando As New ADODB.Command
With cnnComando
.ActiveConnection = cnn
.CommandType = adCmdText
If vInclusao Then
.CommandText = [Ô]INSERT INTO Produtos[Ô] & _
[Ô](Código,Nome,Fabicante,PreçoCompra,Porcentagem,PreçoVenda,Quantidade,Observação)[Ô] & _
[Ô] Values(txtCódigo),(txtNome),(txtFabricante),(txtPreçoCompra),(txtPorcentagem),(txtPreçoVenda),(txtquantidade),(txtObservação);[Ô]
Else
.CommandText = [Ô]Update Produtos set[Ô] & _
[Ô]Nome=[ô][Ô] & txtNome.Text & [Ô][ô],[Ô] & _
[Ô]Fabricante=[ô][Ô] & txtFabricante.Text & [Ô][ô],[Ô] & _
[Ô]PreçoCompra=[ô][Ô] & txtPreçoCompra.Text & [Ô][ô],[Ô] & _
[Ô]Porcentagem=[ô][Ô] & txtPorcentagem.Text & [Ô][ô],[Ô] & _
[Ô]PreçoVenda=[ô][Ô] & txtPreçoVenda.Text & [Ô][ô],[Ô] & _
[Ô]Quantidade=[ô][Ô] & txtQuantidade.Text & [Ô][ô],[Ô] & _
[Ô]WHERE Código=[Ô] & txtCódigo.Text & [Ô];[Ô]
End If
.Execute
End With
End Sub
Desde já agradeço a todos
Caro,
Em que linha ocorre erro?
Em que linha ocorre erro?
Bom dia David
Quando mando gravar e da o erro
aparece nessa linha .Na palavra .EXECUTE fica uma lista amarela
já no final do código do botão gravar
End If
.Execute
End With
End Sub
Quando mando gravar e da o erro
aparece nessa linha .Na palavra .EXECUTE fica uma lista amarela
já no final do código do botão gravar
End If
.Execute
End With
End Sub
[Ô] Values(txtCódigo),(txtNome),(txtFabricante),(txtPreçoCompra),(txtPorcentagem),(txtPreçoVenda),(txtquantidade),(txtObservação);[Ô]
Esta linha está errada.
Após o VALUES você deve colocar entre parênteses TODOS os valores:
[Ô] Values([ô][Ô] & txtCódigo & [Ô][ô],[ô][Ô] & txtNome & [Ô][ô],[ô][Ô] & txtFabricante & [Ô][ô],[ô][Ô] & txtPreçoCompra & [Ô][ô],[ô][Ô] & txtPorcentagem & [Ô][ô],[ô][Ô] & txtPreçoVenda & [Ô][ô],[ô][Ô] & txtquantidade & [Ô][ô],[ô][Ô] & txtObservação & [Ô][ô]);[Ô]
Esta linha está errada.
Após o VALUES você deve colocar entre parênteses TODOS os valores:
[Ô] Values([ô][Ô] & txtCódigo & [Ô][ô],[ô][Ô] & txtNome & [Ô][ô],[ô][Ô] & txtFabricante & [Ô][ô],[ô][Ô] & txtPreçoCompra & [Ô][ô],[ô][Ô] & txtPorcentagem & [Ô][ô],[ô][Ô] & txtPreçoVenda & [Ô][ô],[ô][Ô] & txtquantidade & [Ô][ô],[ô][Ô] & txtObservação & [Ô][ô]);[Ô]
Citação:
Eder Mir vc tinha razão.Só que agora surgiu outro erro
Qdo manda gravar um produto já cadastrado ele da esse erro
ERRO DE SINTAXE NA INSTRUÇÃO UPDATE
posta a sql de update colega
Note que o comando está errado:
.CommandText = [Ô]Update Produtos set[Ô] & _
[Ô]Nome=[ô][Ô] & txtNome.Text & [Ô][ô],[Ô] & _
[Ô]Fabricante=[ô][Ô] & txtFabricante.Text & [Ô][ô],[Ô] & _
[Ô]PreçoCompra=[ô][Ô] & txtPreçoCompra.Text & [Ô][ô],[Ô] & _
[Ô]Porcentagem=[ô][Ô] & txtPorcentagem.Text & [Ô][ô],[Ô] & _
[Ô]PreçoVenda=[ô][Ô] & txtPreçoVenda.Text & [Ô][ô],[Ô] & _
[Ô]Quantidade=[ô][Ô] & txtQuantidade.Text & [Ô][ô],[Ô] & _
[Ô]WHERE Código=[Ô] & txtCódigo.Text & [Ô];[Ô]
Coloque espaços ao final de cada linha separando a palavra seguinte da anterior e ANTES do WERE deve-se remover a vÃrgula:
.CommandText = [Ô]Update Produtos set [Ô] & _
[Ô]Nome=[ô][Ô] & txtNome.Text & [Ô][ô], [Ô] & _
[Ô]Fabricante=[ô][Ô] & txtFabricante.Text & [Ô][ô], [Ô] & _
[Ô]PreçoCompra=[ô][Ô] & txtPreçoCompra.Text & [Ô][ô], [Ô] & _
[Ô]Porcentagem=[ô][Ô] & txtPorcentagem.Text & [Ô][ô], [Ô] & _
[Ô]PreçoVenda=[ô][Ô] & txtPreçoVenda.Text & [Ô][ô], [Ô] & _
[Ô]Quantidade=[ô][Ô] & txtQuantidade.Text & _
[Ô]WHERE Código=[Ô] & txtCódigo.Text & [Ô];[Ô]
.CommandText = [Ô]Update Produtos set[Ô] & _
[Ô]Nome=[ô][Ô] & txtNome.Text & [Ô][ô],[Ô] & _
[Ô]Fabricante=[ô][Ô] & txtFabricante.Text & [Ô][ô],[Ô] & _
[Ô]PreçoCompra=[ô][Ô] & txtPreçoCompra.Text & [Ô][ô],[Ô] & _
[Ô]Porcentagem=[ô][Ô] & txtPorcentagem.Text & [Ô][ô],[Ô] & _
[Ô]PreçoVenda=[ô][Ô] & txtPreçoVenda.Text & [Ô][ô],[Ô] & _
[Ô]Quantidade=[ô][Ô] & txtQuantidade.Text & [Ô][ô],[Ô] & _
[Ô]WHERE Código=[Ô] & txtCódigo.Text & [Ô];[Ô]
Coloque espaços ao final de cada linha separando a palavra seguinte da anterior e ANTES do WERE deve-se remover a vÃrgula:
.CommandText = [Ô]Update Produtos set [Ô] & _
[Ô]Nome=[ô][Ô] & txtNome.Text & [Ô][ô], [Ô] & _
[Ô]Fabricante=[ô][Ô] & txtFabricante.Text & [Ô][ô], [Ô] & _
[Ô]PreçoCompra=[ô][Ô] & txtPreçoCompra.Text & [Ô][ô], [Ô] & _
[Ô]Porcentagem=[ô][Ô] & txtPorcentagem.Text & [Ô][ô], [Ô] & _
[Ô]PreçoVenda=[ô][Ô] & txtPreçoVenda.Text & [Ô][ô], [Ô] & _
[Ô]Quantidade=[ô][Ô] & txtQuantidade.Text & _
[Ô]WHERE Código=[Ô] & txtCódigo.Text & [Ô];[Ô]
EDER MIR
O Procedimento que vc passou deu CERTO.
Muito obrigado
Valeu
O Procedimento que vc passou deu CERTO.
Muito obrigado
Valeu
Tópico encerrado , respostas não são mais permitidas