none
erro em consulta na rotina do VB6 RRS feed

  • Pergunta

  • Pessoal, boa tarde, estou com problema em uma rotina de consulta do vb6, esta dando a mensagem de erro "tipo não coincidente na expressão" e não estou conseguindo acertar, alguem pode me dar uma ajuda. Segue abaixo parte da rotina onde aparece o erro.

           gridemp.Row = 0
           gridemp.ColWidth(0) = 1300
           gridemp.Col = 0
           gridemp.Text = "Codigo"
           gridemp.ColWidth(1) = 5000
           gridemp.Col = 1
           gridemp.Text = "Razão Social"
           Ix = 1
           SQL = ""
           SQL = "select * from TB_EMPRESAS where cod_empresa in(select empresa_cod from TB_ClieXEmpr " & _
                 " where  cliente_cod = " & TxtCodigo.Text & ")"
           Set conecta.rs = conecta.cn1.Execute(SQL)  >>>>>>>>>>>>>>>> E R R O <<<<<<<<<<<<<<<<<<     
           While Not conecta.rs.EOF
               gridemp.AddItem conecta.rs("cod_empresa") & Chr(9) & _
                               conecta.rs("txt_razao") & Chr(9), I
               Ix = Ix + 1
               conecta.rs.MoveNext
            Wend
    


    quarta-feira, 11 de dezembro de 2013 16:25

Respostas

  • O que o erro diz  é que para 

     SQL = "select cod_empresac from TB_CONTRATANTE where Txt_razaoc = '" & txtcontr.Text & "'"

    o retorno é vazio.

    Se 

    SQL = " select cod_empresa from TB_EMPRESAS where txt_razao = '" & txtemp.Text & "'"

    contem valores.. verifique se  txtemp.Text e  txtcontr.Text contem os mesmos valores.

    Attt


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Sugerido como Resposta Giovani Cr quinta-feira, 12 de dezembro de 2013 13:33
    • Marcado como Resposta Luiz_fco quinta-feira, 12 de dezembro de 2013 13:57
    quinta-feira, 12 de dezembro de 2013 13:16
    Moderador

Todas as Respostas

  • Quais sao ao tipos (int, varchar, char, etc) dos campos cod_empresa (tabela TB_EMPRESAS )  e empresa_cod (tabela TB_ClieXEmpr)

    Veja como esta configurado no sql server

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quarta-feira, 11 de dezembro de 2013 16:34
    Moderador
  • Willian, bom dia, já consegui resolver esse problema, agradeço pela força, agora estou com outro, quando estou fazendo uma pesquisa da a mensagem que o "BOF ou EOF são verdadeiros ou o registro atual foi excluido"e nao   consigo localizar o erro pode me ajudar por favor. segue abaixo a rotina
    Private Sub cmdGravar_Click()                               ' -*-*- inclusao de fatura -*-*-
       Dim Cliente As String
       datalancamento = Date
       If txtemp.Text = "" Then
          MsgBox ("selecione a Empresa Pagadora !")
          txtemp.SetFocus
          Exit Sub
       End If
       SQL = ""
       SQL = " select cod_empresa from TB_EMPRESAS where txt_razao = '" & txtemp.Text & "'"
       Set conecta.rs = conecta.cn1.Execute(SQL)
       codpagto = conecta.rs!cod_empresa
       If txtcontr.Text = "" Then
          MsgBox ("selecione a Empresa Contratante !")
          txtcontr.SetFocus
          Exit Sub
       End If
       SQL = ""
       SQL = "select cod_empresac from TB_CONTRATANTE where Txt_razaoc = '" & txtcontr.Text & "'"
       Set conecta.rs = conecta.cn1.Execute(SQL)
       codcontr = conecta.rs!cod_empresac >>>>>>>>>>>>>>>>>>erro<<<<<<<<<<<<<<<<<
       SQL = ""
       SQL = "insert into TB_RECEBER(Cod_cliente2,num_fatura,num_vlrfatura,dat_vencimento," & _
             "dat_emissao,flg_status,txt_historico,cod_pgato,cod_contrat) values " & _
             "('" & codcliente.Text & "','" & txtfatura.Text & "' ,'" & txtvalor.Text & "','" & txtdata.Text & "'," & _
             "'" & datalancamento & "','ABERTO','" & UCase(Trim(TxtHistorico.Text)) & "', " & _
             "" & codpagto & "," & codcontrat & ")"
       Call conecta.cn1.Execute(SQL)
       Call atu_gercliente
       If MsgBox("Inclusão Efetuado com Sucesso !, Imprime comprovante ?", vbYesNo) = vbYes Then
          tipocomprovante = "I N C L U S A O  "
          Call include_fatura
       End If
       Call limpatela
    End Sub

    quinta-feira, 12 de dezembro de 2013 11:44
  • Esse erro ocorre quando o resultado vem vazio. Na verdade nao é um erro.. é mais um alerta.

    Voce tem que fazer essa verficaçao antes de usar o resultado:

    if not(rs.EOF and rs.BOF) then
    
    else
       ' Exibir mensagem: Resultado Vazio
    end if 
    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quinta-feira, 12 de dezembro de 2013 12:23
    Moderador
  • Willian, não entendi pq tenho que usar essa verificação pois estou "usando" o mesmo tipo de consulta nas linha acima e não ocorre esse erro, sendo que existe o registro na TB_CONTRATANTE..! a rotina esta errada..???
    quinta-feira, 12 de dezembro de 2013 12:40
  • Willian, reparei também que esse erro esta acontecendo com o 1º registro , quando seleciona outro registro da combobox, a rotina segue normal....
    quinta-feira, 12 de dezembro de 2013 12:48
  • O que o erro diz  é que para 

     SQL = "select cod_empresac from TB_CONTRATANTE where Txt_razaoc = '" & txtcontr.Text & "'"

    o retorno é vazio.

    Se 

    SQL = " select cod_empresa from TB_EMPRESAS where txt_razao = '" & txtemp.Text & "'"

    contem valores.. verifique se  txtemp.Text e  txtcontr.Text contem os mesmos valores.

    Attt


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Sugerido como Resposta Giovani Cr quinta-feira, 12 de dezembro de 2013 13:33
    • Marcado como Resposta Luiz_fco quinta-feira, 12 de dezembro de 2013 13:57
    quinta-feira, 12 de dezembro de 2013 13:16
    Moderador
  • OK, obrigado, deu certo.....
    quinta-feira, 12 de dezembro de 2013 13:57