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


    [Resolvido]Como gerar uma consulta para esse carnê

    avatar
    davidslima
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 12/04/2011

    [Resolvido]Como gerar uma consulta para esse carnê Empty [Resolvido]Como gerar uma consulta para esse carnê

    Mensagem  davidslima 13/1/2014, 12:57

    Olá Pessoal

    Gostaria de uma luz para gerar uma consulta para uma tabela que contém esses campos:

    Matricula AnoBase VlrPG01 VlrPG02 VlrPG03 VlrPG04 VlrPG05 VlrPG06 VlrPG07 VlrPG08 VlrPG09 VlrPG010 VlrPG11 VlrPG12 dtPG 01...12

    Matricula é a chave única do sócio
    AnoBase registra apenas o ano para o qual o carnê foi gerado
    e
    VlrPG01...12
    o valor que foi pago em cada parcela
    e
    dtPg01...12
    as datas do pagamento

    queria saber se tem como fazer uma consulta para pegar o último mês pago de cada sócio.
    avatar
    Convidado
    Convidado


    [Resolvido]Como gerar uma consulta para esse carnê Empty Re: [Resolvido]Como gerar uma consulta para esse carnê

    Mensagem  Convidado 20/1/2014, 11:03

    Bom dia Dadiv...Seja bem vindo ao Fórum!

    O correto seria estas mensaildades em uma tabela relacionar em registros e não em coluna..
    Mas dá sim para verificar o ultimo mês de pagamento, basta fazer um loop pelos campos de cada registro.

    Algo assim, veja que faço primeiramente o loop pelo registro de um recordset e dentro deste um loop pelos campos do registro

    Do While Not RsImport.EOF
                   NumCampos = RsImport.Fields.Count
                    'Inicio o loop pelos campos excluindo o campo da chave primaria que é o campo 0
                    For Z = 0 To (NumCampos - 1)
                    'Aqui utilizo a variável z (numérica para representar o número do campo que se incia em 0
                    MsgBox RsImport.Fields(Z)
                    Next Z
     'Movo o RsImport para o proximo registro
    RsImport.MoveNext
    Loop

    Cumprimentos.
    avatar
    davidslima
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 12/04/2011

    [Resolvido]Como gerar uma consulta para esse carnê Empty Fiz de outra forma, mas acabei trabalhando muito mais

    Mensagem  davidslima 21/1/2014, 15:31

    Olá pessoal!

    Harysohn, valeu pela dica. Ainda não tinha pensado em fazer loop pelos campos.

    Na realidade não sou programador. Estou apenas quebrando um galho.

    Consegui fazer o que queria da seguinte forma.

    'Primeiro criei uma consulta classificando por Matricula em ordem crescente e anobase (ano de pagamento) em ordem decrescente.

    sql = "SELECT * FROM Movimentos ORDER BY Matricula, anobase DESC;"

    'coloquei o recordset pra verificar os campos

    Set db = CurrentDb()
    Set rs = db.OpenRecordset(sql)

    rs.movelast 'pegar o ultimo valor'

    lngContado = rs.RecordCount

    rs.movefirst 'mover para início

    'Depois iniciei o loop fazendo ele gravar a matricula e ano base atual e anterior comparando uma com a otra, caso fossem diferentes
    'ele lança o registro em uma nova tabela SelAtrasados.

    strMatANT = rs("Matricula")
    strANOAnt = rs("ANOBASE")
    DoCmd.RunSQL "INSERT INTO SelAtrasados SELECT * FROM Atrasados WHERE Matricula = '" & strMatANT & "' And ANOBASE = '" & strANOAnt & "'; "

    rs.MoveNext

    'Novo loop
    Do While Not rs.EOF

    strMatX = rs("Matricula")
    strANOX = rs("ANOBASE")


    If strMatX = strMatANT Then
    'RetVal = SysCmd(acSysCmdUpdateMeter, lngContaProgresso)
    strMatANT = rs("Matricula")
    strANOAnt = rs("ANOBASE")
    lngContaProgresso = lngContaProgresso + 1
    SysCmd 2, lngContaProgresso
    rs.MoveNext
    Else
    'RetVal = SysCmd(acSysCmdUpdateMeter, lngContaProgresso)
    DoCmd.RunSQL "INSERT INTO SelAtrasados SELECT * FROM Atrasados WHERE Matricula = '" & strMatX & "' And ANOBASE = '" & strANOX & "'; "
    strMatANT = rs("Matricula")
    strANOAnt = rs("ANOBASE")
    lngContaProgresso = lngContaProgresso + 1
    SysCmd 2, lngContaProgresso
    rs.MoveNext
    End If

    Loop

    rs.Close
    db.Close

    'Depois disso abri essa tabela criada com os ultimos carnês criados para cada sócio e verifiquei o ultimo mês pago
    procurando o mês que o vlr de pagamento fosse <> de 0 e fazendo com que ele fosse registrado nessa tabela tanto mês quanto ano em campos separados.

    o código gerado foi esse

    For lngConta = 1 To lngContadorTotal
    strANO = rs("Anobase")
    If rs("VLPAGO12") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "12"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO11") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "11"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO10") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "10"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO9") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "9"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO8") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "8"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO7") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "7"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO6") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "6"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO5") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "5"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO4") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "4"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO3") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "3"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO2") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "2"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    If rs("VLPAGO1") <> "0" Then
    rs.Edit
    rs("UltimoMes") = "1"
    rs("UltimoAno") = strANO
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    Else
    rs.Edit
    rs("UltimoMes") = "12"
    rs("UltimoAno") = strANO - 1
    rs.Update
    rs.MoveNext
    RetVal = SysCmd(acSysCmdUpdateMeter, lngConta)
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    Next lngConta

    Então foi assim.

    Quando a gente tem pouco conhecimento trabalha mais. Mas deixo aí como eu fiz, pq pode ajudar alguém de alguma forma.
    Obrigado a todos do fórum. Consegui terminar esse pequeno projeto depois de muita pesquisa. O conteudo encontrado aqui foi essencial.
    avatar
    Convidado
    Convidado


    [Resolvido]Como gerar uma consulta para esse carnê Empty Re: [Resolvido]Como gerar uma consulta para esse carnê

    Mensagem  Convidado 22/1/2014, 10:12

    Só faltou o resolvido no Tópico, desta vez eu Coloco.

    O Fórum agradece o retorno.

    Conteúdo patrocinado


    [Resolvido]Como gerar uma consulta para esse carnê Empty Re: [Resolvido]Como gerar uma consulta para esse carnê

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 21:56