MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Dlast 5 campos

    Compartilhe

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 15/05/2013

    [Resolvido]Dlast 5 campos

    Mensagem  maguim em 24/9/2018, 18:51

    Boa tarde! amigos tudo bem?

    Andei pesquisando bastante sobre o assunto, porem nao achei nada igual ou proximo.


    tenho um table de andamento

    onde contem datas de andamento validada

    ex:

    CÓDIGO  | AND1    | AND2       |ETC
    0001       | DATA    | DATA        |ETC
    0002       | DATA    | DATA        |ETC


    Queria que o DLAST pegasse ultima data entre os campos.... é possivel?

    abraços


    Última edição por maguim em 26/10/2018, 19:22, editado 3 vez(es)
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1237
    Registrado : 05/02/2010

    Dlast 5 campos

    Mensagem  good guy em 24/9/2018, 21:52

    Olá Maguim,

    Não consegui entender o que vc quer ainda.

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 15/05/2013

    Re: [Resolvido]Dlast 5 campos

    Mensagem  maguim em 24/9/2018, 23:55

    Fala mestre...

    Na vdd eu tenho uma tabela com varios campos com datas uma do lado da outra.

    A cada data por campo tem um sim/nao a fila e totalmente baseada entre verdadeiro ou falso da tabela.

    Queria fazer um DLast da ultima data entre os campo da tabela que estao lado a lado
    Tipo PROCH sabe ?


    Última edição por maguim em 25/9/2018, 17:47, editado 1 vez(es)


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1237
    Registrado : 05/02/2010

    Dlast 5 campos

    Mensagem  good guy em 25/9/2018, 15:22

    Ok Maguim,

    Posta um exemplo para fazermos os testes.

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 15/05/2013

    Re: [Resolvido]Dlast 5 campos

    Mensagem  maguim em 25/9/2018, 17:46

    Segue o BD mestre.
    Anexos
    TESTE DLAST.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (352 Kb) Baixado 4 vez(es)


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1237
    Registrado : 05/02/2010

    dlast 5 campos

    Mensagem  good guy em 25/9/2018, 18:41

    Olá Maguim,

    Tente assim no critério de sua consulta no campo DL_STATUS:

    Código:
    SeImed([DT_STATUS]<=Data();DMáx("DT_STATUS";"FILA";"FILA1=-1");Nulo)
    Anexos
    TESTE DLAST.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (73 Kb) Baixado 5 vez(es)

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 15/05/2013

    Re: [Resolvido]Dlast 5 campos

    Mensagem  maguim em 25/9/2018, 19:25

    mestre, na vdd quero fazer igual um dlookup sabe?

    sabe a tabela fila??? entao...

    ali tem vários campos com datas... cada fila de andamento que é feito um update e marcado uma data...

    fila 1, fila2, fila 3 etc...

    mais o menos assim:

    \/
    |id_geral(1)| >  |verdadeiro1| > | data verdadeiro1| >| falso2| >| data falso2 (nulo)|


    a ideia seria pegar ultima data do campos referenciado ID_GERAL entendeu?

    igual um PROCH no excel.


    exemplo de dlookup:
    Código:
    Forms!FILA_formhistorico!SITUAÇÃO = DLookup("SITUAÇÃO", "BANCODEDADOSCENTRAL", "[ID_GERAL]=" & Me.ID_GERAL)


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1237
    Registrado : 05/02/2010

    Dlast 5 campos

    Mensagem  good guy em 25/9/2018, 20:52

    Olá maguim,

    Sinto muito, mas não consegui interpretar sua dúvida. Fico devendo esta. Sei como trabalhar uma função Dlookup, mas não estou entendendo como utilizá-la para pesquisar tantos campos data que existem em sua tabela.

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 15/05/2013

    Re: [Resolvido]Dlast 5 campos

    Mensagem  maguim em 25/9/2018, 21:04

    estava pensando aqui mestre, nao daria pra criar um variavel que localizasse entre todos os campos e somente trazer o que é true


    acho que seria a resposta mais plausível no momento.

    Ex:

    Ao fazer um consulta entre os campos da tabela retornar somente o que é true? (sim/Não)


    abraços


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 15/05/2013

    Re: [Resolvido]Dlast 5 campos

    Mensagem  maguim em 26/9/2018, 20:09

    pensei em algo assim, porem não estou conseguindo formular melhor a variável alguém pode me ajuda?

    a ideia é fazer um PROCH com VARIOS campos com dlookup e trazer a informação do dlookup tudo que for TRUE

    Código:

    Dim proch As String
    Dim strcampo As String

    strcampo = "[teste1]" & "[teste2]"
    proch = DLookup("strcampo", "tabela1", "teste1=" & Me.cod)

    If strcampo = True Then
    proch = Me.valid
    End If


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Dlast 5 campos

    Mensagem  Alexandre Neves em 27/9/2018, 09:36

    Bom dia,
    Fala em 5 campos e vejo 10 campos data na tabela
    Crie recordset e avalie a data mais alta


    .................................................................................
    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

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 15/05/2013

    Re: [Resolvido]Dlast 5 campos

    Mensagem  maguim em 27/9/2018, 17:27

    @Alexandre

    Boa tarde!

    coloquei 5 campos para não gerar tanto trabalho pra editar.

    E na vdd o andamento se baseia-se em 6 campos os outros são outro tipo de controle.

    pode me dar um exemplo de como fazer isso? exemplo dinâmico pra estudos... preciso do caminho das pedras pra poder estudar mais com enfase.


    estou pensando algo assim esta correto?
    Código:
    Dim seq As DAO.Recordset
               Set seq = CurrentDb.OpenRecordset("select id_geral, fila1, fila2, fila3, fila4, fila5 from fila where id_geral = " & Me.cod & "")


    If seq = True Then



    End If


    abraço


    Última edição por maguim em 27/9/2018, 21:26, editado 1 vez(es)


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Dlast 5 campos

    Mensagem  Alexandre Neves em 27/9/2018, 20:59

    Boa noite,
    Não sei onde precisa utilizar
    Ao tempo que anda no fórum, podia saber disponibilizar dados significativos e detalhes mais concisos
    Pede exemplo? Quer que tenha trabalho em criar dados que já os têm consigo e são mais fiáveis para o que pretende?

    No trecho de código que indicou, fala em Comando4 e não vejo Comando4 em lado nenhum
    Tinha começado a falar em Código, AND1, AND2, ETC e não vejo nada disso

    Num módulo, cole
    Código:
    Function UltData(intCod As Integer) As Date
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '  código criado por Alexandre Neves, do Fórum MaximoAccess  '
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
          Dim Rst As DAO.Recordset, I As Integer
        Set Rst = CurrentDb.OpenRecordset("SELECT * FROM Fila WHERE id_geral = '" & intCod & "'")
        For I = 6 To 1 Step -1
            If Len("" & Rst("Dt" & I)) > 0 And Rst("Fila" & I) Then UltData = Rst("Dt" & I): Exit For
        Next
        Set Rst = Nothing
    End Function

    Para obter consulta, coloque
    SELECT id_geral, UltData(id_geral) as UltData FROM Fila;


    .................................................................................
    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

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 344
    Registrado : 15/05/2013

    Re: [Resolvido]Dlast 5 campos

    Mensagem  maguim em 27/9/2018, 21:25

    @Alexandre

    Desculpa sobre a bagunça que fiz,  no topic. Mas vamos aos detalhes que pediu.

    aonde eu preciso que me retorne essa consulta é no formulário "FILA_formhistorico" na combo ME.ANDAMENTO.
    Comando4_Click(), este eu estava fazendo separado do meu bd. Foi um teste separado do bd que deixei aqui, Mas já esta editado pra seguir a logica do tópico.



    poderia me explicar um pouco sobre os trechos do seu código por favor?

    deixa ver se entendi...

    aqui vc fez um variavel global certo? UltData

    Código:
    Function UltData(intCod As Integer) As Date


    aqui vc declarou a tabela inteira sobre os campos que necessito certo?

    Código:
        Dim Rst As DAO.Recordset
        Set Rst = CurrentDb.OpenRecordset("SELECT * FROM Fila WHERE id_geral = '" & intCod & "'")


    Esse pedaço fiquei estou com duvida, o que seria esta parte? contagem dos campos? é isso? desculpa minha ignorância.

    Código:
    I As Integer
        For I = 6 To 1 Step -1
            If Len("" & Rst("Dt" & I)) > 0 And Rst("Fila" & I) Then UltData = Rst("Dt" & I): Exit For
        Next
        Set Rst = Nothing
    End Function


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Dlast 5 campos

    Mensagem  Alexandre Neves em 28/9/2018, 13:56

    Boa tarde
    E continuo a não ver a combo Andamento

    Era bom habituar-se a aprender com outras dúvidas e tentar participar nas dúvidas dos colegas. É este o espírito do fórum
    Sobre os códigos, tantas vezes apresentado em dúvidas aqui no fórum
    Function UltData(intCod As Integer) As Date - trata-se de uma função
    Dim Rst As DAO.Recordset - declaração de conjunto de registos
    Set Rst = CurrentDb.OpenRecordset("SELECT * FROM Fila WHERE id_geral = '" & intCod & "'") - atribuir origem ao conjunto de registos



    I As Integer - declara variável
        For I = 6 To 1 Step -1 - incremento para construir nomes dos campos que vão ser utilizados
            If Len("" & Rst("Dt" & I)) > 0 And Rst("Fila" & I) Then UltData = Rst("Dt" & I): Exit For
        Next
        Set Rst = Nothing


    .................................................................................
    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

      Data/hora atual: 17/11/2018, 03:06