Guest Jéssica Postado Outubro 20, 2006 Denunciar Share Postado Outubro 20, 2006 Estou com um problema nesse código que serve para gravar os dados de um u´suário no vanco de dados no caso estou usando o access:Private Sub GravarDados()Dim cnnComando As New ADODB.CommandDim vConfMsg As IntegerDim vErro As Boolean 'Inicializa as variáveis auxiliares: vConfMsg = vbExclamation + vbOKOnly + vbSystemModal vErro = False 'Verifica os dados digitados: If txtNomeUsuario.Text = Empty Then MsgBox "O campo Nome não foi preenchido.", vConfMsg, "Erro" vErro = True End If If txtEndereco.Text = Empty Then MsgBox "O campo Endereço não foi preenchido.", vConfMsg, "Erro" vErro = True End If If txtCidade.Text = Empty Then MsgBox "O campo Cidade não foi preenchido.", vConfMsg, "Erro" vErro = True End If If txtEstado.Text = Empty Then MsgBox "O campo Estado não foi preenchido.", vConfMsg, "Erro" vErro = True End If If txtCEP.Text = Empty Then MsgBox "O campo CEP não foi preenchido.", 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 With cnnComando .ActiveConnection = cnnBiblio .CommandType = adCmdText 'Verifica a operação e cria o comando SQL correspondente: If vInclusao Then 'Inclusão: .CommandText = "INSERT INTO Usuarios " & _ "(CodUsuario, NomeUsuario, Endereco, Cidade, " & _ "Estado, CEP, Telefone) VALUES ('" & _ txtCodUsuario.Text & ",'" & _ txtNomeUsuario.Text & "','" & _ txtEndereco.Text & "','" & _ txtCidade.Text & "','" & _ txtEstado.Text & "','" & _ txtCEP.Text & "','" & _ txtTelefone.Text & "');" Else 'Alteração: .CommandText = "UPDATE Usuarios SET " & _ "NomeUsuario = '" & txtNomeUsuario.Text & "'," & _ "Endereco = '," & txtEndereco.Text & "'," & _ "Cidade = '," & txtCidade.Text & "'," & _ "Estado = '," & txtEstado.Text & "'," & _ "CEP = '," & txtCEP.Text & "'," & _ "Telefone = '," & txtTelefone.Text & "' " & _ "WHERE CodUsuario = " & txtCodUsuario.Text & ";" End If .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 SubOn Error GoTo errGravacaoerrGravacao: With Err If .Number <> 0 Then MsgBox "Houve um erro durante a gravação dos dados na tabela.", _ vbExclamation + vbOKOnly + vbApplicationModal, "Erro" .Number = 0 GoTo Saida End If End WithEnd SubA linha em vermelho é aonde está dando o erro, eu tento cadastrar um usuário no banco de dados mas ele dá um erro de sintaxe na hora de gravar o registro!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 20, 2006 Denunciar Share Postado Outubro 20, 2006 sim, é porque você abre uma aspa no codigo do usuario e não fecha. o certo deve ser assim:"INSERT INTO Usuarios " & _"(CodUsuario, NomeUsuario, Endereco, Cidade, " & _"Estado, CEP, Telefone) VALUES ('" & _txtCodUsuario.Text & "','" & _txtNomeUsuario.Text & "','" & _txtEndereco.Text & "','" & _txtCidade.Text & "','" & _txtEstado.Text & "','" & _txtCEP.Text & "','" & _txtTelefone.Text & "')"[/code]veja se funciona. no caso de o campo ser numerico, então tire as duas aspas Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Outubro 23, 2006 Denunciar Share Postado Outubro 23, 2006 Valeu pela dica agora funcionou, mas tá dando erro nessa função aqui:Private Sub LimparTela() 'Chama a sub LimparDados para limpar os campos do formulário: LimparDados 'Desabilita o botão Excluir: Toolbar1.Buttons(3).Enabled = False 'Apaga o conteúdo do campo CodUsuario e lhe passa o foco: txtCodUsuario.Text = Empty txtCodUsuario.SetFocusEnd SubNa linha em vermelho dá erro, essa função é para limpar os campos automaticamente assim que eu gravo o registro, ele chama a outra função LimparDados, que esvazia os campos, e passa o foco para o campo Código! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 23, 2006 Denunciar Share Postado Outubro 23, 2006 qual o erro que da??você não pode chamar o setfocus se ele tiver com enabled = false. e também não pode chamar a funcao se o form ainda não estiver aberto, ou estiver abrindo (Form_Load). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Outubro 23, 2006 Denunciar Share Postado Outubro 23, 2006 Já consegui fazer funcionar, agora tá dando erro nessa parte do código aqui: If vInclusao Then 'Inclusão: .CommandText = "INSERT INTO Categorias " & _ "(CodCategoria, NomeCategoria) VALUES ('" & _ txtCodCategoria.Text & "','" & _ txtNomeCategoria.Text & "')" Else 'Alteração: .CommandText = "UPDATE Categorias SET " & _ "NomeCategoria = '" & txtNomeCategoria.Text & "'," & _ "WHERE CodCategoria = " & txtCodCategoria.Text & ";" End If .ExecuteNa hora de atualizar ele dá erro de sintaxe Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 23, 2006 Denunciar Share Postado Outubro 23, 2006 antes do where não tem virgula: .CommandText = "UPDATE Categorias SET " & _"NomeCategoria = '" & txtNomeCategoria.Text & "' " & _"WHERE CodCategoria = " & txtCodCategoria.Text[/code] Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Jéssica
Estou com um problema nesse código que serve para gravar os dados de um u´suário no vanco de dados no caso estou usando o access:
Private Sub GravarDados()
Dim cnnComando As New ADODB.Command
Dim vConfMsg As Integer
Dim vErro As Boolean
'Inicializa as variáveis auxiliares:
vConfMsg = vbExclamation + vbOKOnly + vbSystemModal
vErro = False
'Verifica os dados digitados:
If txtNomeUsuario.Text = Empty Then
MsgBox "O campo Nome não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtEndereco.Text = Empty Then
MsgBox "O campo Endereço não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtCidade.Text = Empty Then
MsgBox "O campo Cidade não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtEstado.Text = Empty Then
MsgBox "O campo Estado não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If txtCEP.Text = Empty Then
MsgBox "O campo CEP não foi preenchido.", 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
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
'Verifica a operação e cria o comando SQL correspondente:
If vInclusao Then
'Inclusão:
.CommandText = "INSERT INTO Usuarios " & _
"(CodUsuario, NomeUsuario, Endereco, Cidade, " & _
"Estado, CEP, Telefone) VALUES ('" & _
txtCodUsuario.Text & ",'" & _
txtNomeUsuario.Text & "','" & _
txtEndereco.Text & "','" & _
txtCidade.Text & "','" & _
txtEstado.Text & "','" & _
txtCEP.Text & "','" & _
txtTelefone.Text & "');"
Else
'Alteração:
.CommandText = "UPDATE Usuarios SET " & _
"NomeUsuario = '" & txtNomeUsuario.Text & "'," & _
"Endereco = '," & txtEndereco.Text & "'," & _
"Cidade = '," & txtCidade.Text & "'," & _
"Estado = '," & txtEstado.Text & "'," & _
"CEP = '," & txtCEP.Text & "'," & _
"Telefone = '," & txtTelefone.Text & "' " & _
"WHERE CodUsuario = " & txtCodUsuario.Text & ";"
End If
.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
On Error GoTo errGravacao
errGravacao:
With Err
If .Number <> 0 Then
MsgBox "Houve um erro durante a gravação dos dados na tabela.", _
vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
.Number = 0
GoTo Saida
End If
End With
End Sub
A linha em vermelho é aonde está dando o erro, eu tento cadastrar um usuário no banco de dados mas ele dá um erro de sintaxe na hora de gravar o registro!!
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.