Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
jackbcc

Vb6 aparece um erro ao digitar o código do usuário, já pesquisei e alterei algumas coisas mas sem sucesso.

Recommended Posts

Ao fazer a aplicação que consta na apostila do vb6 aparece um erro ao digitar o código do usuário, já pesquisei e alterei algumas coisas mas sem sucesso.

Private Sub txtCodUsuario_LostFocus()
    Dim cnnComando As New ADODB.Command
    Dim rsSelecao As New ADODB.Recordset
    '   On Error GoTo errSelecao-> desativei para ver se resolvia
       'Verifica se foi digitado um código válido:
       If Val(txtCodUsuario.Text) = 0 Then
            MsgBox "Não foi digitado um código válido, verifique.", vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
            Exit Sub
       End If
    Screen.MousePointer = vbHourglass
    With cnnComando
    'abrir o banco para fazer a consulta e a inclusão:
    'cnnbiblio.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=D:\Projeto\Visual Basic\Bibliotecario\Biblio.mdb;"
    cnnbiblio.ConnectionString = "Provider=ADsDSOObject;Encrypt Password=False;Data Source=D:\Projeto\Visual Basic\Bibliotecario\Biblio.mdb;"
    cnnbiblio.Open
        .ActiveConnection = cnnbiblio
        .CommandType = adCmdText
        'Monta o comando Select para selecionar o registro na tabela:
        .CommandText = "Select * from Usuarios where CodUsuario=" & txtCodUsuario.Text & ";"
        'Set rsSelecao = .Execute
    End With
    With rsSelecao
        If .EOF And .BOF Then
            'Se o recordset esta vazio, não retornou registro com esse código:
            LimparDados
            'Identifica a operação como inclusão:
            vInclusao = True
        Else
            'Senão, atribui aos campos os dados do registro:
            txtNomeUsuario.Text = !NomeUsuario
            txtEndereco.Text = !Endereco
            txtCidade.Text = !Cidade
            txtEstado.Text = !Estado
            txtCEP.Text = !CEP
            txtTelefone = Empty & !Telefone
            'Identifica a operação como Alteração:
            vInclusao = True
            'Habilita o botão Excluir:
            Toolbar1.Buttons(3).Enabled = True
        End If
    End With
    'Desabilita a digitação do campo código:
    txtCodUsuario.Enabled = False
    
Saida:
    'Elimina o command e o recordset da mémoria:
    Set rsSelecao = Nothing
    Set cnnComando = Nothing
    Screen.MousePointer = vbDefault
    Exit Sub
    
'errSelecao:-> deixei essa parte como comentário para ver se resolvia o erro
 '   With Err
  '      If .Number <> 0 Then
            'MsgBox "Houve um  erro na recuperação do registro solicitado.", vbExclamation + vbOKOnly + vbApplicationModal, "Aviso"
            'ver o erro ao digitar o código do usuário
   '         MsgBox "Houve um  erro na recuperação do registro solicitado." & .Description, vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
    '        .Number = 0
     '       GoTo Saida
     '   End If
    'End With
End Sub

Erro>:Run  timer error'3704', quando debugo a linha 
If .EOF And .BOF Then esta amarela informando que o .BOF =<Operação não permitida quando o objeto está fechado.>

 

Como resolver ?

Editado por dif
Inserir o código dentro da tag CODE e melhorar o título

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Consegui fazer a inclusão alterando algumas coisas mas agora aparece a mensagem que houve erro e na descrição:object required , segue o que foi feito:

    Private Sub txtCodUsuario_LostFocus()
    'variável que será usada para manipular o Banco de Dados
        Dim cnnComando As New ADODB.Command
        'variável que recebe os dados do Banco de Dados e Grava no BD de volta
        Dim rsSelecao As New ADODB.Recordset
          On Error GoTo errSelecao 'caso ocorra erro vai pra outro comando abaixo
           'Verifica se foi digitado um código válido:
           'Val vai retornar em valores numericos o que foi digitado na txtCodUsuario
        'como não foi digitado nada ele retorna 0, então acontece a MsgBox abaixo
           If Val(txtCodUsuario.Text) = 0 Then
                MsgBox "Não foi digitado um código válido, verifique.", vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
                Exit Sub
           End If
            'o comando abaixo transforma o cursor do mouse em ampulheta
        Screen.MousePointer = vbHourglass
         'o command começa a executar operações no BD
        With cnnComando
        'ativa a conexão criada com o BD
            .ActiveConnection = cnnbiblio
             'indica o tipo de dados a ser aberto
            .CommandType = adCmdText
            'Monta o comando Select para selecionar o registro na tabela:
            'indica qual o campo a ser trabalhado
            .CommandText = "Select * from Usuarios where CodUsuario=" & txtCodUsuario.Text & ";"
            'declarando que o rsSeleção será executado como declarado acima
            Set rsSelecao = .Execute
        End With
        With rsSelecao
            If .EOF And .BOF Then
                'Se o recordset esta vazio, não retornou registro com esse código:
                LimparDados
                'Identifica a operação como inclusão:
                vInclusao = True
            Else
                'Senão, atribui aos campos os dados do registro:
                txtNomeUsuario.Text = !NomeUsuario
                txtEndereco.Text = !Endereco
                txtCidade.Text = !Cidade
                txtEstado.Text = !Estado
                txtCEP.Text = !CEP
                txtTelefone = Empty & !Telefone
                'Identifica a operação como Alteração:
                vInclusao = True
                'Habilita o botão Excluir:
                Toolbar1.Buttons(3).Enabled = True
            End If
        End With
        'Desabilita a digitação do campo código:
        txtCodUsuario.Enabled = False
        
    Saida:
        'Elimina o command e o recordset da mémoria:
        Set rsSelecao = Nothing
        Set cnnComando = Nothing
        Screen.MousePointer = vbDefault
        Exit Sub
        
    errSelecao:
        With Err
            If .Number <> 0 Then
                MsgBox "Houve um  erro na recuperação do registro solicitado.", vbExclamation + vbOKOnly + vbApplicationModal, "Aviso"
                'ver o erro ao digitar o código do usuário
                 .Number = 0
                GoTo Saida
            End If
        End With
    End Sub
    
    GravarDados
    
    Private Sub GravarDados()
    Dim cnnComando As New ADODB.Command
    Dim vConfMsg As Integer
    Dim vError 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 nome não foi preenchido.", vConfMsg, "Erro"
        vErro = True
        End If
        If txtEndereco.Text = Empty Then
        MsgBox "O endereco não foi preenchido.", vConfMsg, "Erro"
        vErro = True
        End If
        If txtCidade.Text = Empty Then
        MsgBox "A cidade não foi preenchido.", vConfMsg, "Erro"
        vErro = True
        End If
        If txtEstado.Text = Empty Then
        MsgBox "O estado não foi preenchido.", vConfMsg, "Erro"
        vErro = True
        End If
        If txtCEP.Text = Empty Then
        MsgBox "O 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çao 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 "Houve um erro durante a gravação dos dados na tabela." & .Description, vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
                '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

     

     

     

    Editado por dif
    inserir o código dentro da tag CODE <>

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×