locked
Jogar o resultado de um select em uma variável RRS feed

  • Pergunta

  • Bom dia!

    Sou inciante em VBA Access e preciso fazer uma aplicação que pegue o resultado de um select de determinado campo
    jogue este resultado em um variavel inteira, e após isso use desta variavel para fazer um update em um campo em outra tabela.

    Abaixo segue o código que estou tentando utilizar.

    O erro ocorre no  numreg = rs("NUMERO_DE_RESPOSTAS")
    Nao passa desta linha!

    Qualquer ajuda agradeço!

    Abraços
    Sub Atualiza_Resposta_Objetiva(numeroQuestao As Integer, resposta As String)
    
        MsgBox ("Funcao inicio")
        'Declaracao de variaveis
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Dim numreg As Integer
        numreg = 0
        'Seleciona o banco
        Set db = CurrentDb
            
        MsgBox ("Funcao antes do meio")
        
        'Busca registro a ser atualizado
        Set rs = db.OpenRecordset("select NUMERO_DE_RESPOSTAS " _
        & " from TB_RESPOSTA_QUESTAO_OBJETIVA " _
        & " where CODIGO_QUESTAO = " & numeroQuestao _
        & " AND TEXTO_RESPOSTA = '" & resposta & "'")
        
        numreg = rs("NUMERO_DE_RESPOSTAS")
        
        'Atualiza somando 1
        
        numreg = numreg + 1
        
        MsgBox ("Funcao meio")
        'Executa comando de atualizacao
        db.Execute "UPDATE TB_RESPOSTA_QUESTAO_OBJETIVA " _
        & " Set NUMERO_DE_RESPOSTAS = " & numreg _
        & " WHERE CODIGO_QUESTAO = " & numeroQuestao _
        & " AND TEXTO_RESPOSTA = '" & resposta & "'"
        
        MsgBox ("Funcao FIM")
    
    End Sub

    Leandro Neroni
    domingo, 18 de outubro de 2009 12:39

Todas as Respostas

  • Qual a mensagem de erro apresentada?
    sexta-feira, 23 de outubro de 2009 13:59
  • Mude a linha

    numreg = rs("NUMERO_DE_RESPOSTAS"
    )
    

    para

    numreg = rs!NUMERO_DE_RESPOSTAS
    
    

    e feche o rs e o db depois. Acho que deve funcionar
    terça-feira, 12 de janeiro de 2010 14:00
  • Experimente

    numreg = Nz(rs("NUMERO_DE_RESPOSTAS"),0)

    Suspeito que você tenha registros em que este campo está nulo e, ao tentar jogá-lo numa variável Integer, ocorre erro de tipo (13).

    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br
    terça-feira, 12 de janeiro de 2010 23:52
    Moderador
  • Boa Luiz, se retornasse nulo ia dar erro mesmo.

    Obrigado
    quarta-feira, 13 de janeiro de 2010 00:33