ERRO AO FAZER A INCLUSAO
E aà pessoal,
AÃ vai um problema do Galo Cego aqui.
Ao clicar no botão GravarRegistro, é apresentado o seguinte erro:
Run-timer error [ô]-2147217904(80040e10)[ô]
Nenhum valor foi fornecido para um ou mais parêmetros
Ele aponta para a linha:
.Execute
segue o código:
Private Sub GravarDados()
Dim cnnComando As New ADODB.Command
Dim vSql As String
Dim vCod As Long
vCod = Val(txtCodLivro.Text)
If vInclusao Then
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
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
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
.CommandText = vSql
.Execute
End With
O que acontece?????
AÃ vai um problema do Galo Cego aqui.
Ao clicar no botão GravarRegistro, é apresentado o seguinte erro:
Run-timer error [ô]-2147217904(80040e10)[ô]
Nenhum valor foi fornecido para um ou mais parêmetros
Ele aponta para a linha:
.Execute
segue o código:
Private Sub GravarDados()
Dim cnnComando As New ADODB.Command
Dim vSql As String
Dim vCod As Long
vCod = Val(txtCodLivro.Text)
If vInclusao Then
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
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
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
.CommandText = vSql
.Execute
End With
O que acontece?????
Algum(ns) campo(s) especificado(s) nestas queries não existe(m) na tabela. Verifique isto primeiro.
Cara, olhei todos os campos e estão iguaizinhos aos da tabela.
Só um detalhe,
O instrução SELECT está funcionando, pois eu cadastro manualmente os dados, e quando o txtCodigo perde o foco ele me traz os dados certinho.
O instrução SELECT está funcionando, pois eu cadastro manualmente os dados, e quando o txtCodigo perde o foco ele me traz os dados certinho.
Procurando no google, achei um cara com o mesmo problema que eu, mas só que o fórum não estava completo, só que ele escreveu que tinha achado o problema e era na variável vAcompcd e vAcompDisquete, pois as duas são do tipo boolean, e no banco de dados a estrutura do campo estava como Sim/Não. Segue o código:
Private Sub chkAcompCd_Click()
[ô]Verifica se chkAcompCD está ou não marcada, e atribui a vAcompCD o valor correspondente:
If chkAcompCd.Value = vbChecked Then
vAcompCd = True
Else
vAcompCd = False
End If
End Sub
Valeu
Private Sub chkAcompCd_Click()
[ô]Verifica se chkAcompCD está ou não marcada, e atribui a vAcompCD o valor correspondente:
If chkAcompCd.Value = vbChecked Then
vAcompCd = True
Else
vAcompCd = False
End If
End Sub
Valeu
Coloque a variável vSql em uma MSgBox, e veja o que ela retorna. Talvez vc consiga entender o que tá acontecendo.
Veja o que aparece
INSERT INTO Livros (CodLivro, Titulo, Autor, CodEditora, CodCategoria, AcompCd, AcompDisquete, Idioma, Observacoes) VALUES (2, [ô]Aa[ô], [ô]Aa[ô], 1, 1, Verdadeiro, Verdadeiro, 0, [ô]Aa[ô]);
A tabela tá igualzinha...
INSERT INTO Livros (CodLivro, Titulo, Autor, CodEditora, CodCategoria, AcompCd, AcompDisquete, Idioma, Observacoes) VALUES (2, [ô]Aa[ô], [ô]Aa[ô], 1, 1, Verdadeiro, Verdadeiro, 0, [ô]Aa[ô]);
A tabela tá igualzinha...
Onde tá Verdadeiro, tente trocando para True ou False. Se der certo use a função [txt-size=2]IIf[/txt-size] para tratar isso na query.
E aà Leandro...
Cara como estou iniciando em vb, eu ainda não consigo montar essa query que você me passou.
Será que vc poderia me ajudar, mais uma vez.
Segue o código:
Private Sub chkAcompCd_Click()
[ô]Verifica se chkAcompCD está ou não marcada, e atribui a vAcompCD o valor correspondente:
If chkAcompCd.Value = vbChecked Then
vAcompCd = True
Else
vAcompCd = False
End If
End Sub
Valeu.
Cara como estou iniciando em vb, eu ainda não consigo montar essa query que você me passou.
Será que vc poderia me ajudar, mais uma vez.
Segue o código:
Private Sub chkAcompCd_Click()
[ô]Verifica se chkAcompCD está ou não marcada, e atribui a vAcompCD o valor correspondente:
If chkAcompCd.Value = vbChecked Then
vAcompCd = True
Else
vAcompCd = False
End If
End Sub
Valeu.
é bem simples resolver este problemas sem o uso do IIF. Na verdade, todo campo Boolean é um número inteiro de valores 0 e 1. Então é necessário apenas usar a função ABS.
Veja:
Espero ter ajudado.
Veja:
If vInclusao Then
vSql = [Ô]INSERT INTO Livros [Ô] & [Ô](CodLivro, Titulo, Autor, CodEditora, CodCategoria, AcompCd, AcompDisquete, Idioma, Observacoes) VALUES ([Ô] & vCod & [Ô], [ô][Ô] & txtTitulo.Text & [Ô][ô], [ô][Ô] & txtAutor.Text & [Ô][ô], [Ô] & vCodEditora & [Ô], [Ô] & vCodCategoria & [Ô], [Ô] & [txt-color=#e80000]ABS([/txt-color]vAcompCd[txt-color=#e80000])[/txt-color] & [Ô], [Ô] & [txt-color=#e80000]ABS([/txt-color]vAcompDisquete[txt-color=#e80000])[/txt-color] & [Ô], [Ô] & vIdioma & [Ô], [ô][Ô] & txtObservacoes.Text & [Ô][ô]);[Ô]
Else
vSql = [Ô]UPDATE Livros Set Titulo = [ô][Ô] & txtTitulo.Text & [Ô][ô], Autor = [ô][Ô] & txtAutor.Text & [Ô][ô], CodEditora = [Ô] & vCodEditora & [Ô], CodCategoria = [Ô] & vCodCategoria & [Ô], AcompCd = [Ô] & [txt-color=#e80000]ABS([/txt-color]vAcompCd[txt-color=#e80000])[/txt-color] & [Ô], AcompDisquete = [Ô] & [txt-color=#e80000]ABS([/txt-color]vAcompDisquete[txt-color=#e80000])[/txt-color] & [Ô], idioma = [Ô] & vIdioma & [Ô], Observacoes = [ô][Ô] & txtObservacoes.Text & [Ô][ô] WHERE CodLivro = [Ô] & vCod & [Ô];[Ô]
End If
Espero ter ajudado.
Valeu pela resposta.
Deu certinho.
VALEU.
Deu certinho.
VALEU.
Tópico encerrado , respostas não são mais permitidas