Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

aprendiz19

[Resolvido] Erro no Vb 6

Recommended Posts

Oi galera, to tentando gravar os dados do frm cadastro de livros que to fazendo de uma apostila mas só da esse erro:

Run Time error '-214721790(80040e10)';

Nenhum valor foi fornecido para um ou mais parâmetros necessários

e quando eu aperto Debug

aponta para essa linha.Execute

ai vai a parte que aponta o erro

 

Private Sub GravarDados()
Dim cnnComando As New ADODB.Command
Dim vSQL As String
Dim vCod As Long
Dim vConfMsg As Integer
Dim vErro As Boolean
On Error GoTo errGravacao
'Converte o código digitado para gravação:
vCod = Val(txtCodLivro.Text)
'Verifica os dados digitados:
vConfMsg = vbExclamation + vbOKOnly + vbApplicationModal
vErro = False
If vCod = 0 Then
MsgBox "O campo Código não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtTitulo.Text = Empty Then
MsgBox "O campo Título não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtAutor.Text = Empty Then
MsgBox "O campo Autor não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If vCodEditora = 0 Then
MsgBox "Não foi selecionada uma Editora.", vConfMsg, "Erro"
vErro = True
End If
If vCodCategoria = 0 Then
MsgBox "Não foi selecionada uma Categoria.", vConfMsg, "Erro"
vErro = True
End If
'Se aconteceu um erro de digitação, sai da sub sem gravar:
If vErro Then Exit Sub
Screen.MousePointer = vbHourglass
'Constrói o comando SQL para gravação:
If vInclusao Then
'Se é uma inclusão:
vSQL = "INSERT INTO Livros (CodLivro, Titulo, Autor, CodEditora, " & _
"CodCategoria, AcompCD, AcompDisquete, Idioma, Observacoes) " & _
"VALUES (" & vCod & ",'" & _
txtTitulo.Text & "','" & _
txtAutor.Text & "'," & _
vCodEditora & "," & _
vCodCategoria & "," & _
vAcompCD & "," & _
vAcompDisquete & "," & _
vIdioma & ",'" & _
txtObservacoes.Text & "');"
Else
'Senão, alteração:
vSQL = "UPDATE Livros SET Titulo = '" & txtTitulo.Text & _
"', Autor = '" & txtAutor.Text & _
"', CodEditora = " & vCodEditora & _
", CodCategoria = " & vCodCategoria & _
", AcompCD = " & vAcompCD & _
", AcompDisquete = " & vAcompDisquete & _
", Idioma = " & vIdioma & _
", Observacoes = '" & txtObservacoes.Text & _
"' WHERE CodLivro = " & vCod & ";"
End If

'Executa o comando de gravação:
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
.CommandText = vSQL
[color="#2E8B57"].Execute[/color]
End With
MsgBox "Gravação concluída com sucesso.", _
vbApplicationModal + vbInformation + vbOKOnly, _
"Gravação OK"
'Chama a sub que limpa os dados do formulário:
LimparTela

End Sub

quem souber como me ajudar, responda pelo amor de Deus

Espero respostas...vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

depure o valor de vSQL pois aparentemente é ai a forma mais facil de achar o erro

 

atraves dela deverá achar algo que estaja faltando

Compartilhar este post


Link para o post
Compartilhar em outros sites

depure o valor de vSQL pois aparentemente é ai a forma mais facil de achar o erro

 

atraves dela deverá achar algo que estaja faltando

Não sei o q é depurar direito, é quando você coloca a flecha no nome e fica marrom? e depois que executa o sistema aparece

amarelo?

Se for, apareceu nesta parte:

 

vSQL = "INSERT INTO Livros (CodLivro, Titulo, Autor, CodEditora, " & _
"CodCategoria, AcompCD, AcompDisquete, Idioma, Observacoes) " & _
"VALUES (" & vCod & ",'" & _
txtTitulo.Text & "','" & _
txtAutor.Text & "'," & _
vCodEditora & "," & _
vCodCategoria & "," & _
vAcompCD & "," & _
vAcompDisquete & "," & _
vIdioma & ", '" & _
txtObservacoes.Text & "');[color="#008000"]nesta parte aparece uma flecha amarela[/color]
Else

no aguardo, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aprendiz, o que você pode fazer é tentar executar esse query diretamente no banco de dados e ver se dá algum erro. É mais fácil você encontrar o motivo.

Ja tentei também salvar no banco de dados que é o access

e não deu erro nenhum....

parece que não vai ter jeito mesmo né...erro fatal....jah tentei rever o codigo mas ainda não acho o erro....tah dificil

Nessa tabela eu tenho que gravar os dados de um livro, com caixas de texto normal, e com combobox...será que é porque tem a combobox??

Alguma coisa errada com o codigo relacionada a ela?...pq jah fiz gravacao de outra tabela q ñ tinha combobox

e ñ deu esse trabalho todo.

 

no aguardo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

escreve o resultado da sql em alguma especie de msgbox da vida e poste o que aparecer

Compartilhar este post


Link para o post
Compartilhar em outros sites

no campo Vidioma é número mesmo, mas o restante era do tipo sim ou não...coloquei as apóstrofes....

no restante....

e agora deu um erro assim....

 

Run Time Error

Tipo de dados incompatível na expressão de critério

 

 

e obrigado por me responder.....vo ver se é alguma coisa no SQL e no access

espero respotas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se é boolean, tire as apostrofes mesmo. Por isso esse novo erro. O motivo não era esse.

 

Você tentou fazer o que o Mário falou?

 

Executar o retorno da consulta um uma mensagem por exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se é boolean, tire as apostrofes mesmo. Por isso esse novo erro. O motivo não era esse.

 

Você tentou fazer o que o Mário falou?

 

Executar o retorno da consulta um uma mensagem por exemplo?

 

Como que eu faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de fazer seu execute, faça: msgbox vSQL.

 

Pegue o resultado da mensagem e execute diretamente no seu banco de dados. Poste aqui o resultado da mensagem e resultado da execução no banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode ser mais descritivo?

ñ to entendendo....

como executo a mensagem do que aparece no banco de dados?

 

espero respostas

ah tinha esquecido de dizer :

 

a variavel vSQL está como String,

 

 

agora a variavel vAcompDisquete e vAcompCD estão como boolean

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque este trecho:

'Executa o comando de gravação:
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
.CommandText = vSQL
.Execute
End With
Por este:

'Mostra uma mensagem com o valor da variavel vSQL
MsgBox vSQL

'Executa o comando de gravação:
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
.CommandText = vSQL
.Execute
End With
Assim aparecerá uma mensagem na tela com o valor da variável vSQL, assim você copia o conteúdo da mensagem e tenta executar diretamente no banco de dados, para descobrir o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque este trecho:

'Executa o comando de gravação:
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
.CommandText = vSQL
.Execute
End With
Por este:

'Mostra uma mensagem com o valor da variavel vSQL
MsgBox vSQL

'Executa o comando de gravação:
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
.CommandText = vSQL
.Execute
End With
Assim aparecerá uma mensagem na tela com o valor da variável vSQL, assim você copia o conteúdo da mensagem e tenta executar diretamente no banco de dados, para descobrir o erro.

 

ah tah agora apareceu os dados que eu ai gravar na caixa de texto...mas como assim executo direto no banco de dados???

Compartilhar este post


Link para o post
Compartilhar em outros sites

poe aqui o que aparece na query que fica mais facil do que ficar tentano adivinhar o seu valor

Compartilhar este post


Link para o post
Compartilhar em outros sites

msgbox(vSQL)

 

poe aqui o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.