none
VB 6.0 Duvida sobre Variavel em Query RRS feed

  • Pergunta

  • Ola Amigos, Estou fazendo uma atualização num programa antigo de estoque (Que é em VB6) e apareceu um errinho que não esperava. Consiste numa string de SQL.

    Criei uma Text, para a pessoal selecionar quantos Intens Listar num relatorio, exemplo a pessoa selecionou 10 aparece 10 itens no relátorio

    Query : "SELECT TOP 10 * FROM EST_ENT_LANC Where nome = ' x ' ORDER BY data DESC,id_ent_lanc DESC" (assim Funciona)

    mas assim não : SELECT TOP ' " & top_n & " ' * FROM EST_ENT_LANC ....

    Campos para colocar Valor de Registro e o Botão para o Relatorio

    Só que quando coloco o codigo não Funciona....

    ------------------------------------------------------------------------

        Dim chave As String

        chave = CMD_ATIVOS.Text

        Dim top_n As Integer
        top_n = txt_top.Text

    rsp2.Open "SELECT TOP ' " & top_n & " ' * FROM EST_ENT_LANC Where nome ='" & chave & "'ORDER BY data DESC,id_ent_lanc DESC", cnsun, adOpenStatic, adLockOptimistic

      'Chamada do Relatório em Data Report  

    Set DT_Lanc.DataSource = rsp2 
        DT_Lanc.DataMember = rsp2.DataMember
        DT_Lanc.Sections("Section4").Controls.item("Label16").Visible = False
        DT_Lanc.Sections("Section4").Controls.item("Label18").Visible = False
        DT_Lanc.Sections("Section4").Controls.item("Label14").Caption = rsp2!nome
        DT_Lanc.ReportWidth = 1080
        DT_Lanc.Orientation = rptOrientDefault
        DT_Lanc.Show vbModal
        rsp2.Close

    ------------------------------------------------------------------------

    Já tentei Dim top_n As String e dá o mesmo erro

    se ele reconhece o valor chave = CMD_ATIVOS.Text da clausula where, por que não reconhece na clausula top.

    sábado, 7 de julho de 2012 14:36

Respostas

  • Tenta desta forma:  select = @"Select Top " + numero + " * From Where Nome = " + onde + ""

    numero declarei como dim numero as integer e onde como string.


    http://malange-levi.blogspot.co.uk/

    domingo, 8 de julho de 2012 13:19
    Moderador
  • Levi, Muito Obrigado, Funcionou, direitinho, só que na variavel a dim teve que ser como string, pois com intenger dava o erro....

    Run-time error '13'
    Type mismatch

    ============== Joguei a Variavel de Intenger para String e o relatório saiu perfeito

    • Marcado como Resposta Moises Gomes terça-feira, 10 de julho de 2012 13:05
    terça-feira, 10 de julho de 2012 13:02

Todas as Respostas

  • Tenta desta forma:  select = @"Select Top " + numero + " * From Where Nome = " + onde + ""

    numero declarei como dim numero as integer e onde como string.


    http://malange-levi.blogspot.co.uk/

    domingo, 8 de julho de 2012 13:19
    Moderador
  • Levi, Muito Obrigado, Funcionou, direitinho, só que na variavel a dim teve que ser como string, pois com intenger dava o erro....

    Run-time error '13'
    Type mismatch

    ============== Joguei a Variavel de Intenger para String e o relatório saiu perfeito

    • Marcado como Resposta Moises Gomes terça-feira, 10 de julho de 2012 13:05
    terça-feira, 10 de julho de 2012 13:02