MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

3 participantes

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente

    avatar
    gtpsp
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 01/11/2013

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Empty [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente

    Mensagem  gtpsp 3/9/2021, 22:44

    Olá a todos, mais uma vez venho pedir ajuda aos mestres.
    Tenho que popular uma listbox em um formulário de cadastro de clientes, porem tenho que verificar se o campo fi09dtvenctoprorr está preenchido se estiver considera o valor desse campo, caso não considere o valor do campo fi09dtvencto. utilizo o código abaixo para popular, só não sei como e de que forma incluir as condições.
    O mesmo caso é para a classificação dos registros.

    Código:


    Private Sub carregalistaFin()


        csql = "SELECT TOP 50 fi09movfin.fi09idmovfin, fi09movfin.fi09idfilial, fi09movfin.fi09tipomov, fi09movfin.fi09nrdocto AS NDocto, [fi09parcini] & " - " & [fi09parcfim] AS Parcela, fi09movfin.fi09datadocto AS DtDocto, fi09movfin.fi09dtvencto, fi09movfin.fi09dtvenctoprorr, fi09movfin.fi09valorcredito, fi09movfin.fi09vlttreccredito, fi09movfin.fi09dtquitacao,"
        csql = csql & "FROM fi09movfin "
        csql = csql & "WHERE fa02faturas.fa02idfilial = " & TempVars!varIdfilial & " and fa02faturas.fa02idcredor = " & Me.cr01idcredor & " "
        csql = csql & "ORDER BY dtVencto DESC;"

      
         Call Conexao_Open(csql)

        Me!listaFin = Null    'Limpa seleção do registro
        Me!listaFin.RowSource = ""    'Limpa os dados da caixa de listagem
        Me!listaFin.Requery    'atualiza dados da caixa de listagem

        While (Not rs.EOF)

            Me!listaFin.AddItem rs.Fields(0).Value & ";" & rs.Fields(3).Value & ";" & rs.Fields(4).Value & ";" & rs.Fields(5).Value & ";" & rs.Fields(6).Value
            rs.MoveNext    'vai para o proximo registro

        Wend

        rs.Close    'fecha o recorset
        cn.Close    'fecha o banco de dados
        
    End Sub



    o que preciso incluir no select é a informação abaixo

     'If([fi09dtvenctoprorr] > 0 then [fi09dtvenctoprorr] else [fi09dtvencto]) As dtVencto


    Desde já agradeço a ajuda.

    Obrigado

    Giovanni Paiva


    Última edição por gtpsp em 6/9/2021, 15:42, editado 1 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Empty Re: [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente

    Mensagem  Alexandre Fim 3/9/2021, 22:52

    Giovanni boa noite,

    Por gentileza, nos envie uma cópia do seu bd (somente objetos envolvidos - forms/consultas/tabelas/modulos  e etc.) para análise e solução do problema.

    OBS:
    Crie um bd novo e importe os objetos em questão e, no caso das tabelas, crie-as como local. Desta forma é possivel reproduzir os dados.

    Grato.

    []'s

    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    gtpsp
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 01/11/2013

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Empty Re: [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente

    Mensagem  gtpsp 4/9/2021, 05:05

    Alexandre, agradeço o retorno.

    O sistema é totalmente na nuvem, o banco de dados é em mysql tabelas e views são conectadas atraves de ADO e DAO.

    Os módulos estão todos perfeitos, apenas preciso de ajuda na sintaxe para incluir uma condição para trazer deternimado valor conforme o critério.

    Obrigado!
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3707
    Registrado : 22/11/2016

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Empty Re: [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente

    Mensagem  DamascenoJr. 4/9/2021, 14:01

    Código:
    If([fi09dtvenctoprorr] > 0,[fi09dtvenctoprorr],[fi09dtvencto]) As dtVencto


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    gtpsp gosta desta mensagem

    avatar
    gtpsp
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 01/11/2013

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Empty Re: [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente

    Mensagem  gtpsp 6/9/2021, 17:19

    Damasceno, obrigado pelo retorno, porem está dando erro de sintaxe.

    erro 1 - tipos incompativeis ao concatenar dois campos do tipo inteiro e sitar o nome ao campo.

    Código:


        csql = "SELECT ..., fi09movfin.fi09parcini &" - "& fi09movfin.fi09parcfim AS Parcela  "


    erro 2 - Erro de sintaxe ao usar o if, tentei fazer o if na condição WHERE e apresentou o mesmo erro:

    Código:


        csql = "SELECT fi09movfin.fi09idmovfin, fi09movfin.fi09idfilial, fi09movfin.fi09tipomov, fi09movfin.fi09nrdocto AS Docto ,fi09movfin.fi09dtvencto, fi09movfin.fi09dtvenctoprorr, fi09movfin.fi09dtquitacao, fi09movfin.fi09valorcredito, fi09movfin.fi09vlttreccredito " ', fi09movfin.fi09parcini " - " fi09movfin.fi09parcfim AS Parcela  "


        csql = csql & "If(fi09movfin.fi09dtquitacao > 0 ,fi09movfin.fi09vlttreccredito, fi09movfin.fi09valorcredito) as Total  "


        csql = csql & "FROM fi09movfin "
        csql = csql & "WHERE fi09movfin.fi09idfilial = " & TempVars!varIdfilial & " and fi09movfin.fi09idcredor = " & Me.cr01idcredor & " AND fi09tipomov = 'C' "
        csql = csql & "ORDER BY  fi09dtvencto DESC;"



    Obrigado
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Empty Re: [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente

    Mensagem  Alexandre Fim 6/9/2021, 19:01

    Giovani,

    No lugar do IF, use o CASE:

    Código:


    CASE WHEN fi09movfin.fi09dtquitacao > 0 THEN fi09movfin.fi09vlttreccredito ELSE fi09movfin.fi09valorcredito END as Total



    []'S

    fim




    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Setinf11
    Sistemas e Tecnologia Ltda

    gtpsp gosta desta mensagem

    avatar
    gtpsp
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 01/11/2013

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Empty Re: [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente

    Mensagem  gtpsp 8/9/2021, 13:53

    Alexandre, bom dia!

    Agradeço a ajuda, continua apresentando o mesmo erro de sintaxe..
    Fiz um teste colocando o case when no order by e funcionou desde que eu não nomeie o campo AS xxx, agora durante o select o erro continua, tentei colocar no select, após o from, e após o where com e sem o AS e a msg de sintaxe continua.

    Código:


        csql = "SELECT fi09movfin.fi09idmovfin, fi09movfin.fi09idfilial, fi09movfin.fi09tipomov, fi09movfin.fi09nrdocto AS Docto ,fi09movfin.fi09dtvencto, fi09movfin.fi09dtvenctoprorr, fi09movfin.fi09dtquitacao, fi09movfin.fi09valorcredito, fi09movfin.fi09vlttreccredito  "
        csql = csql & "FROM fi09movfin "


        csql = csql & "CASE WHEN fi09movfin.fi09dtquitacao > 0 THEN fi09movfin.fi09vlttreccredito ELSE fi09movfin.fi09valorcredito END as Total "


        csql = csql & "WHERE fi09movfin.fi09idfilial = " & TempVars!varIdfilial & " and fi09movfin.fi09idcredor = " & Me.cr01idcredor & " AND fi09tipomov = 'C' "
        csql = csql & "ORDER BY  fi09dtvencto DESC;"




    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Screen15


    Obrigado!
    avatar
    gtpsp
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 01/11/2013

    [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente Empty Re: [Resolvido]Popular listbox com Select (mysql) com condição para verificar valor do campo e mostrar o valor correspondente

    Mensagem  gtpsp 8/9/2021, 23:03

    Resolvi o problema em questão, da seguinte forma, ao invés de tratar os cases na instrução select, tratei no momento de popular as linhas do listbox, não sei se é a forma mais correta.

    O código final ficou assim:

    Código:


    Private Sub carregalistaFin()

        csql = "SELECT fi09idmovfin, fi09idfilial, fi09tipomov, fi09nrdocto AS Docto ,fi09dtvencto, fi09dtvenctoprorr, fi09dtquitacao, fi09valorcredito, fi09vlttreccredito,  fi09parcini, fi09parcfim  "
        csql = csql & "FROM fi09movfin "
        csql = csql & "WHERE fi09idfilial = " & TempVars!varIdfilial & " and fi09idcredor = " & Me.cr01idcredor & " AND fi09tipomov = 'C' "
        csql = csql & "ORDER BY  CASE WHEN fi09dtvenctoprorr > 0 THEN fi09dtvenctoprorr ELSE fi09dtvencto END  DESC;"
        
        Call Conexao_Open(csql)

        Me!listaFin = Null    'Limpa seleção do registro
        Me!listaFin.RowSource = ""    'Limpa os dados da caixa de listagem
        Me!listaFin.Requery    'atualiza dados da caixa de listagem

        While (Not rs.EOF)

            Me!listaFin.AddItem _
            rs.Fields(0).Value & ";" _
            & rs.Fields(3).Value & ";" _
            & IIf(rs.Fields(5).Value > 0, rs.Fields(5).Value, rs.Fields(4).Value) & ";" _
            & rs.Fields(9).Value & "-" & rs.Fields(10).Value & ";" _
            & IIf(rs.Fields(8).Value > 0, rs.Fields(8).Value, rs.Fields(7).Value) & ";" _
            & IIf(rs.Fields(6).Value > 0, "PAGO", IIf(rs.Fields(5).Value > 0 And rs.Fields(5).Value < Date, "PRORROG./ATRASADO", IIf(rs.Fields(5).Value > 0, "PRORROGADO", IIf(rs.Fields(4).Value < Date, "ATRASADO", "EM DIA"))))
            rs.MoveNext    'vai para o proximo registro

        Wend

        rs.Close    'fecha o recorset
        cn.Close    'fecha o banco de dados





    Agradeço a todos pelas dicas

    Obrigado!!

      Data/hora atual: 1/10/2022, 16:45