Ir para conteúdo

Arquivado

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

snewton

meu código não grava!

Recommended Posts

Eis o código, surge o erro no item .EXECUTE

 

 

Public 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 = cnnAprenBiblio

.CommandType = adCmdText

.CommandText = vSQL

.Execute

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

Saida:

Screen.MousePointer = vbDefault

Set cnnComando = Nothing

Exit Sub

errGravacao:

With Err

If .Number <> 0 Then

MsgBox "Erro durante a gravação dos dados no registro." & vbCrLf & _

"A operação não foi completada.", _

vbExclamation + vbOKOnly + vbApplicationModal, _

"Operação cancelada"

.Number = 0

GoTo Saida

End If

End With

End Sub

 

----------------------------------------------------------------------------------------

Até agora ninguém conseguiu me ajudar...

---------------------------------------------------------------------------------------

Agradeço Antecipadamente

 

Snewton

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o erro?

 

Graymalkin

 

Ele Para em:

.EXECUTE

 

com a seguinte mensagem:

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

 

Acredito que o erro esteja nestes blocos:

 

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 = cnnAprenBiblio

.CommandType = adCmdText

.CommandText = vSQL

.Execute

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já viu se algum dos campos da tabela está marcado como preenchimento obrigatório (e que não está incluído na SQL acima)?Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bicho,Fiz alguns ajustes, e agora surge a seguinte mensagem: "erro na sintaxe INSERT INTO" Já estou quase maluco.Em relação a tua frase, também quero ver a cara de todos quando ficarem sabendo o "Por que das coisas?"

Compartilhar este post


Link para o post
Compartilhar em outros sites

para facilitar a visualização do erro faz assim antes do execute:

msgbox vSQL

Assim vocÊ verá a instrução SQL montada e poderá visualizar onde está o erro

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.