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

    saldo bancário

    avatar
    dico_seibt
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 03/03/2015

    saldo - saldo bancário Empty saldo bancário

    Mensagem  dico_seibt 8/3/2021, 03:28

    Boa noite a todos.

    Tenho um código que calcula o saldo bancário de uma conta e monta uma lista com as operações de determinado período. Baixei este código na internet e fiz adaptações. Agora pretendo incluir um campo no formulário que exibe o saldo e os movimentos para que seja feita uma seleção dos registros por seu status (reconciliado ou não-reconciliado). Para isso pretendo utilizar um campo sim/não que já tenho na tabela e um quadro de opção com duas opções.
    E o que não estou conseguindo fazer funcionar é a cláusula WHERE com o resultado do campo do formulário

    '------------------------------------------------------------
    ' fncMontaSaldo
    '------------------------------------------------------------
    Public Function fncMontaSaldo()
    Dim Rs As DAO.Recordset
    Dim Acumulado As Double
    Dim strsql As String
    Dim critério As String
    Dim d As Integer
    '----------------------
    'Limpeza
    '---------------------
    'Call fncLimpaCampos
    'Me!tx1 = Null: Me!tx2 = Null
    '---------------------------------------
    'Desacopla listbox da tabela temporária
    '---------------------------------------
    Me!Lista.RowSource = ""
    '--------------------------------------------------------------------------------------------------------------------
    'Passa para a variavel "d" um dos valores (3,7,15,30,60,90) , dependendo da quantidade de dias escolhida no quadro
    '--------------------------------------------------------------------------------------------------------------------
    d = Switch(Me!Quadro = 1, 7, Me!Quadro = 2, 31, Me!Quadro = 3, 60, Me!Quadro = 4, 120, Me!Quadro = 5, 240, Me!Quadro = 6, 420)
    '--------------------------------------------------
    'Passa para a variavel o nome da tabela temporaria
    '--------------------------------------------------
    tblTemp = "tmp_tabSaldosBanco"
    '------------------------------------------------------
    'Monta a SQL que irá criar a tabela temporaria local
    '-----------------------------------------------------
    strsql = "SELECT TabContábilRegistros.*, Cdbl(0) as SaldoLinha "
    strsql = strsql & "INTO " & tblTemp & " FROM TabContábilRegistros "
    strsql = strsql & "WHERE (((CmpIdConta) = " & Me!ComboConta & ") And cdbl(CmpDataExtrato) > " & CDbl(Date - d) & ") ORDER BY CmpDataExtrato;"
    '---------------------------------------------------
    'Executa a função que irá cirar a tabela temporaria
    '---------------------------------------------------
    If fncCriarTabela(strsql, tblTemp, 102030) Then
       '---------------------------------------------------------------------------------------------------------------------------------
       'Passa o Saldo do Caixa para o campo txtSaldo
       'O Saldo final é composto do saldo acumulado, que fica armazenado na tabela tblConfig, mais o saldo residual da tabela tblMovimento
       'Este procedimento evita ter que somar os valores desde o primeiro registro lançado
       '---------------------------------------------------------------------------------------------------------------------------------
       Me!txtSaldo = DSum("[CmpValor]", "TabContábilRegistros", "[CmpIdConta] = " & Me!ComboConta & "")
       Me!SaldoAnterior = Me!txtSaldo - Nz(DSum("[CmpValor]", tblTemp), 0)
       Acumulado = Nz(Me!SaldoAnterior, 0)
       '--------------------------------------------------------------------------------------------------
       'Abre o recordset da tabela temporaria para calcular e salvar o saldo acumulado por linha(registro)
       'Gravar o Saldo por linha facilita a montagem do ListBox e do Relatório
       '--------------------------------------------------------------------------------------------------
       Set Rs = CurrentDb.OpenRecordset("select * From " & tblTemp & " ORDER BY CmpDataExtrato, CmpDataEmissão")
       Do While Not Rs.EOF
           Acumulado = Acumulado + (Rs!CmpValor)
           Rs.Edit
               Rs!SaldoLinha = Acumulado
           Rs.Update
           Rs.MoveNext
       Loop
       Rs.Close
       Set Rs = Nothing
       '--------------------------------------------------------------
       'Carrega a listbox com todos os registros da tabela temporaria
       '--------------------------------------------------------------
       Call fncCarregalista("CmpIdConta > 0")
    End If
    End Function
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    saldo - saldo bancário Empty Re: saldo bancário

    Mensagem  Noobezinho 8/3/2021, 11:05

    Olá Sandro

    Vendo a tua SQL:

    strsql = "SELECT TabContábilRegistros.*, Cdbl(0) as SaldoLinha " & _
                 "INTO " & tblTemp & " FROM TabContábilRegistros " & _
                 "WHERE (CmpIdConta = " & Me!ComboConta & ") And (cdbl(CmpDataExtrato) > " & CDbl(Date - d))  " &_
                  "AND (Me!CaixadeOpção = True ) & " ORDER BY CmpDataExtrato;"

    O  ( & _) usa-se para concatenar as sentenças em texto.

    Veja que onde pintei de vermelho os nomes da função estão diferentes.

    Crendo que seja a mesma função, uma delas está digitado errado.

    Na cor azul, coloque o nome da caixa de opção e se ele é true/false

    Caso ainda não funfe, faça a consulta de cada parte, e junte depois a SQL de cada uma.

    É o que posso dizer sem olhar o projeto.

    {  }'s

    Balem


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    dico_seibt
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 03/03/2015

    saldo - saldo bancário Empty saldo bancário

    Mensagem  dico_seibt 8/3/2021, 22:39

    Noobezinho, boa tarde e obrigado pela ajuda.

    Ainda não testei a tua sugestão, mas de plano vejo que ela não vai atender a minha necessidade.
    O que eu quero é um código que possa funcionar como o "Quadro", de onde eu extraio a variável 'd', que é utilizada na consulta:

    d = Switch(Me!Quadro = 1, 7, Me!Quadro = 2, 31, Me!Quadro = 3, 60, Me!Quadro = 4, 120, Me!Quadro = 5, 240, Me!Quadro = 6, 420)

    strsql = strsql & "WHERE (((CmpIdConta) = " & Me!ComboConta & ") And cdbl(CmpDataExtrato) > " & CDbl(Date - d) & ") ORDER BY CmpDataExtrato;"

    A idéia é que a consulta varie ao clicar na opção, a princípio seria entre todos os registros ou apenas os registros não reconciliados.
    Vou tentar reproduzir as funções que já funcionam em um BD novo (que passe no UpLoad do site).
    avatar
    dico_seibt
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 03/03/2015

    saldo - saldo bancário Empty saldo bancário

    Mensagem  dico_seibt 8/3/2021, 23:03

    Noobezinho,

    Segue o arquivo de onde retirei a ideia para o meu formulário. A tabela de origem não tem o campo sim/não que eu pretendo utilizar como critério de consulta.
    Anexos
    saldo - saldo bancário AttachmentMovimentoConta.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (229 Kb) Baixado 68 vez(es)

    Conteúdo patrocinado


    saldo - saldo bancário Empty Re: saldo bancário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 22:24