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

2 participantes

    Select sql com IF no cálculo

    avatar
    onfire
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 31
    Registrado : 18/09/2016

    Select sql com IF no cálculo Empty Select sql com IF no cálculo

    Mensagem  onfire 14/1/2022, 23:01

    Exmos
    Só vocês me conseguirão recolver este quebra cabeças.
    Numa consulta tenho este cálculo, mas estou a tentar passar tudo para listbox para aumentar a estabilidade.

    Código:
    SELECT Sum(IIf([TipoMov]="R",[Montante],-[Montante])) AS Saldo
    FROM Situação INNER JOIN (Entidade INNER JOIN (Despesas INNER JOIN (Banco INNER JOIN Movimentos ON Banco.ID = Movimentos.Banco) ON Despesas.ID = Movimentos.Descricao) ON Entidade.ID = Movimentos.Entidade) ON Situação.ID = Movimentos.Situacao
    GROUP BY Banco.Banco, Situação.Situação
    HAVING (((Banco.Banco)=[Formulários]![frm_trab_banco]![CaixaCombinação8]) AND ((Situação.Situação)="Realizado"));

    Em listbox ficaria:

    Código:
    Private Sub Saldo_Click()
    Dim strSQL As String
    Dim rs As DAO.Recordset

        With Lbx
            .RowSourceType = "Value List"  
            .ColumnCount = 1                
            .ColumnWidths = "5cm"  
            .ColumnHeads = True            
            .RowSource = "Saldo"      
            .Requery
        End With
        
        
        strSQL = "SELECT Sum(IIf([TipoMov]="R",[Montante],-[Montante])) AS Saldo" '---não consigo fazer esta parte, como se coloca um if a calcular no select em vba?
        strSQL = strSQL & " FROM Movimentos"
        strSQL = strSQL & " INNER JOIN Banco on Banco.ID = Movimentos.Banco"
        strSQL = strSQL & " INNER JOIN Situação on Situação.ID = Movimentos.Situação"
        strSQL = strSQL & " GROUP BY Banco.Banco, Situação.Situação"
        

    If Nz(Me.CaixaCombinação8, "") <> "" Then
    strSQL = strSQL & " HAVING Banco='" & Me.CaixaCombinação8 & "'"
    End If
        
    strSQL = strSQL & " and Situação='" & Realizado & "'"
    End If

        Set rs = CurrentDb.OpenRecordset(strSQL)
        
        
            
        'Para colocar dados na listbox
        Do Until rs.EOF
            Me.Lbx.AddItem rs!Montante
            rs.MoveNext
        Loop
        
        'Fecha recordset
        rs.Close
        
        'Apaga recordset da memoria
        Set rs = Nothing

    End Sub



    Como posso colocar um if no calculo em SQL no VBA?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8200
    Registrado : 05/11/2009

    Select sql com IF no cálculo Empty Re: Select sql com IF no cálculo

    Mensagem  Alexandre Neves 22/1/2022, 18:50

    Boa tarde
    Não indicou qual o problema no código mas se fôr das aspas, substitua-as por pelicas
    Aproveite e comece a nomear de forma normalizada

    Código:
    SELECT Sum(IIf([TipoMov]='R',[Montante],-[Montante])) AS Saldo
    FROM Situação INNER JOIN (Entidade INNER JOIN (Despesas INNER JOIN (Banco INNER JOIN Movimentos ON Banco.ID = Movimentos.Banco) ON Despesas.ID = Movimentos.Descricao) ON Entidade.ID = Movimentos.Entidade) ON Situação.ID = Movimentos.Situacao
    GROUP BY Banco.Banco, Situação.Situação
    HAVING (((Banco.Banco)=[Formulários]![frm_trab_banco]![CaixaCombinação8]) AND ((Situação.Situação)='Realizado'))


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    onfire
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 31
    Registrado : 18/09/2016

    Select sql com IF no cálculo Empty Re: Select sql com IF no cálculo

    Mensagem  onfire 22/1/2022, 21:23

    O VBA não me reconhece o IIF no select em VBA numa listbox.
    Só funciona se for através do objeto consulta.
    O pretendido é que funcionasse em VBA, mas não consigo encontrar alterativa.
    Abraço


    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8200
    Registrado : 05/11/2009

    Select sql com IF no cálculo Empty Re: Select sql com IF no cálculo

    Mensagem  Alexandre Neves 23/1/2022, 14:06

    Boa tarde
    Disponibilize dados representativos para se ajustar


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    onfire
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 31
    Registrado : 18/09/2016

    Select sql com IF no cálculo Empty Re: Select sql com IF no cálculo

    Mensagem  onfire 2/2/2022, 17:17

    Peço desculpa pela demora.
    Deixo em anexo a base de dados e front, fiz uma limpeza de histórico por conter dados sensíveis.

    Ao entrar vincular à base de dados (user:admin senha:admin).
    Gestão bancária/ Contas bancárias (vai abrir o frm_trab_banco) que é o formulário em questão.
    O que pretendo é substituir o vinculo direto por uma listbox com recordset para criar estabilidade.
    Mas como tem uma condição para o sinal, não consigo contornar a situação.

    A única forma que vejo era ter colocado manualmente o sinal + ou - antes do valor, mas não dá jeito e pode gerar erros.
    O front está desenvolvido para a versão MsAccess 2010 e 2019, nas outras versões pode não arrancar com a Ribbon.
    Anexos
    Select sql com IF no cálculo Attachmentback + front.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.3 Mb) Baixado 6 vez(es)

      Data/hora atual: 24/9/2022, 20:30