Ir para conteúdo

POWERED BY:

Arquivado

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

alexmcsilva

Erro no comando update(VB6)

Recommended Posts

Estou fazendo um exercicio de uma apostila de cadastro de usuarios, quando eu digito um codigo que ja esta cadastrado ele retorna os campos cadastrados nos textbox, a ideia é que eu possa alterar e gravar novamente com as alteracoes feitas, a mesma rotina de gravacao faz o insert e o update. Na hora de gravar as alteracoes aparece a seguinte mensagem

 

Run-time error '-2147217904 (80040e10)':

 

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

 

 

Ja joguei o comando update no acess que eu estou utilizando aqui, funcionou perfeitamente as alterações.

Todos os campos sao do tipo texto no bd menos o codUsuario

 

Se alguem puder me dar uma força ficarei mto grato :)

 

 

 

 

Segue a rotina..

Private Sub GravarDados()
                Dim cnnComando As New ADODB.Command
               
                Dim vConfMsg As Integer
               
                Dim vErro As Boolean
                        'On Error GoTo errGravacao
                        '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
                'cnnBiblio
                .CommandType = adCmdText
                'Verifica a operação e cria o comando SQL correspondente:
                If vInclusao Then
                       .CommandText = "INSERT INTO Usuarios" & _
                                            "(CodUsuarios, NomeUsuario, Endereco, Cidade, Estado, CEP, Telefone) VALUES (" & _
                                             txtCodUsuario.Text & "," & _
                                            "'" & txtNomeUsuario & "'" & "," & _
                                            "'" & txtEndereco & "'" & "," & _
                                            "'" & txtCidade & "'" & "," & _
                                            "'" & txtEstado & "'" & "," & _
                                            "'" & txtCep & "'" & "," & _
                                            "'" & txtTelefone & "'" & ")"
                Else
                'Alteração:
                Dim aux As String
                aux = "UPDATE Usuarios SET " & "NomeUsuario =" & "'" & txtNomeUsuario & "'" & "," & "Endereco =" & "'" & txtEndereco & "'" & "," & "Cidade =" & "'" & txtCidade & "'" & "," & "Estado =" & "'" & txtEstado & "'" & "," & "CEP =" & "'" & txtCep & "'" & "," & "Telefone =" & "'" & txtTelefone & "'" & "WHERE CodUsuario = " & txtCodUsuario
                        MsgBox aux
                        .CommandText = aux
                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:
                        Call LimparTela
Saida:
                    Screen.MousePointer = vbDefault
                    Set cnnComando = Nothing
        Exit Sub
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto do Update seria:

 

UPDATE tabela SET nomedacoluna = ' " & nomedacaixadetexto & " '

 

Não precisa deste monte de aspas . Ficaria assim :

 

aux = " 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 & " ' "

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.