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

    [Resolvido]Filtro por Data em consulta listBox

    avatar
    Convidado
    Convidado


    [Resolvido]Filtro por Data em consulta listBox Empty Filtro por Data em consulta listBox

    Mensagem  Convidado 3/9/2011, 12:50

    Amigos, tenho uma listbox baseada em uma consulta SQL na origem da linha da listBox..

    Na list a coluna do campo Data:

    Data Rec: CpData

    Em critérios:

    >=Format([forms]![frmRecepcao]![DataInicial];"dd/mm/yyyy") E <=Format([forms]![frmRecepcao]![DataFinal];"dd/mm/yyyy")

    em um botão apliquei:

    Me.ListBox.Requery

    Mas não consigo filtrar pelas datas... O que estou a fazer errado?

    Grato
    avatar
    Convidado
    Convidado


    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Convidado 3/9/2011, 13:04

    Alguns acham SQL-VBA mais complicado... Eu não sei ainda porque insisto em tentar resolver diretamente na consulta padrão do Access....

    Eis ai...

    Dim StrSQL As String

    StrSQL = "SELECT tabrecepcao.ID_Recepcao AS Num, tabgranjas.CpNomeGranja AS Granja," _
    & "tabrecepcao.CpData AS [Data Rec], Format([CpData],'mmmm') AS Mês, Format([CpData],'ww') AS Semana," _
    & "tabrecepcao.CpGuiaTransitoAnimal AS Guia, tabrecepcao.CpPlacaCaminhao AS Placa," _
    & "tabrecepcao.CpNumeroTicketPesagem AS Ticket, tabrecepcao.CpSexo AS Sexo, tabrecepcao.CpTipo AS Tipo," _
    & "tabrecepcao.CpQuantidadeRecebidaCabeca AS [Qtd Rec Cb], tabrecepcao.CpQuantidadeRecebidaKg AS [Qtd Rec Kg]," _
    & "tabrecepcao.CpMortalidadeTransporteCabeca AS [Mort Cab], tabrecepcao.CpCondenacaoTotalCabeca AS [Cond Cab]," _
    & "tabrecepcao.CpQuantidadeAvesAbatidasCabeca AS [Abat Cab], ([CpQuantidadeRecebidaKg])/([CpQuantidadeRecebidaCabeca]) AS PesoMedio," _
    & "([CpCondenacaoTotalCabeca])*([PesoMedio]) AS [Cond Kg], (([CpCondenacaoTotalCabeca])/([CpQuantidadeRecebidaCabeca]))*100 AS [Cond Total%]," _
    & "([CpMortalidadeTransporteCabeca])*([PesoMedio]) AS [Mort Tpt Kg], (([CpMortalidadeTransporteCabeca])/([CpQuantidadeRecebidaCabeca]))*100 AS [Mort Tpt %]," _
    & "([CpQuantidadeRecebidaCabeca])-([CpMortalidadeTransporteCabeca])-([CpCondenacaoTotalCabeca]) AS [Qtd Abt Cb]," _
    & "([QuantidadeAvesAbatidasCabeca])*([PesoMedio]) AS [Qtd Abt Kg] FROM tabgranjas LEFT JOIN tabrecepcao ON tabgranjas.ID_Granja = tabrecepcao.ID_Granja_Rel" _
    & " WHERE (((tabrecepcao.ID_Recepcao) Is Not Null)) And ((tabrecepcao.CpData >=#" & Format(Me.DataInicial, "mm/dd/yyyy") & "#) And (tabrecepcao.CpData <=#" & Format(Me.DataFinal, "mm/dd/yyyy") & "#))" _
    & " ORDER BY tabrecepcao.CpData;"

    Me.lstConsulta.RowSource = StrSQL


    Última edição por Harysohn em 3/9/2011, 14:04, editado 2 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Alexandre Neves 3/9/2011, 13:34

    Hary,
    já tentou verificar se será da formatação da data. Utilizar dd-mm-yyyy em vez de mm-dd-yyyy
    avatar
    Convidado
    Convidado


    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Convidado 3/9/2011, 14:01

    Amigao... na consulta diretamente tentei de todas as formas.. com formatação e sem....

    Consegui apenas assim....
    No 2007 a consulta entre datas no SQL so funciona com perfeição se a formatação estiver mm/dd/yyyy, o porque eu não sei... mas tenho resolvido varios problemas de colegas desta forma... inclusive em um exemplo de ponto do Mestre João Paulo, em certa duvida de um colega, que segundo ele não funcionava corretamente, foi so alterar de dd/mm/yyyy para mm/dd/yyyy e funcionou....

    Li em alguma parte na net (nao me recordo o inteiro teor da explicação) que tem haver com a data no formtado norte-americano...


    em um exemplo resolvido por mim para o Amigo Gerson foi da mesma maneira, eu havia feito a SQL no formato dd/mm/yyyy mas não funcionava para a data inicical e final no mesmo dia.. Alterando para mm/dd/yyyy funcionou...



    Agora o problema na origem deste tópico era aplicar o critério diretamente na consulta Access/SQL mas não estava a conseguir.
    Então fiz em VBA como esta acima e funcionou...


    Grato..
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Avelino Sampaio 3/9/2011, 16:40

    Olá Hary

    Na consulta gráfica é em Português (não precisa usar a formatção) e pelo VBA(o VBA é super patriota) é formato americano.

    Sugiro vc assistir minha vídeo-aula a respeito. Mostro essa diferença na prática

    Video-aula

    Bom estudo!
    avatar
    Convidado
    Convidado


    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Convidado 3/9/2011, 18:11

    POis é amigo avelino, na SQL-VBA como faço para alem da data filtrar mais um critério: Placa...

    So que preciso que quando a CboPlaca esteja em branco ele me filtre apenas pela data....


    StrSQL = "SELECT tabrecepcao.ID_Recepcao AS Num, tabgranjas.CpNomeGranja AS Granja," _
    & "tabrecepcao.CpData AS [Data Rec], Format([CpData],'mmmm') AS Mês, Format([CpData],'ww') AS Semana," _
    & "tabrecepcao.CpGuiaTransitoAnimal AS Guia, tabrecepcao.CpPlacaCaminhao AS Placa," _
    & "tabrecepcao.CpNumeroTicketPesagem AS Ticket, tabrecepcao.CpSexo AS Sexo, tabrecepcao.CpTipo AS Tipo," _
    & "tabrecepcao.CpQuantidadeRecebidaCabeca AS [Qtd Rec Cb], tabrecepcao.CpQuantidadeRecebidaKg AS [Qtd Rec Kg]," _
    & "tabrecepcao.CpMortalidadeTransporteCabeca AS [Mort Cab], tabrecepcao.CpCondenacaoTotalCabeca AS [Cond Cab]," _
    & "tabrecepcao.CpQuantidadeAvesAbatidasCabeca AS [Abat Cab], ([CpQuantidadeRecebidaKg])/([CpQuantidadeRecebidaCabeca]) AS PesoMedio," _
    & "([CpCondenacaoTotalCabeca])*([PesoMedio]) AS [Cond Kg], (([CpCondenacaoTotalCabeca])/([CpQuantidadeRecebidaCabeca]))*100 AS [Cond Total%]," _
    & "([CpMortalidadeTransporteCabeca])*([PesoMedio]) AS [Mort Tpt Kg], (([CpMortalidadeTransporteCabeca])/([CpQuantidadeRecebidaCabeca]))*100 AS [Mort Tpt %]," _
    & "([CpQuantidadeRecebidaCabeca])-([CpMortalidadeTransporteCabeca])-([CpCondenacaoTotalCabeca]) AS [Qtd Abt Cb]," _
    & "([QuantidadeAvesAbatidasCabeca])*([PesoMedio]) AS [Qtd Abt Kg] FROM tabgranjas LEFT JOIN tabrecepcao ON tabgranjas.ID_Granja = tabrecepcao.ID_Granja_Rel" _
    & " WHERE (((tabrecepcao.ID_Recepcao) Is Not Null)) And ((tabrecepcao.CpData >=#" & Format(Me.DataInicial, "mm/dd/yyyy") & "#) And (tabrecepcao.CpData <=#" & Format(Me.DataFinal, "mm/dd/yyyy") & "#)) and tabrecepcao.CpPlacaCaminhao ='" & Me.CboPlaca & "'" _
    & " ORDER BY tabrecepcao.CpData;"


    O que acontece ai é que se deixo a cboPlaca em branco.. a consulta não retorna valor..

    Pode ma ajudar com isso?
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Avelino Sampaio 3/9/2011, 18:47

    Experimente

    StrSQL = "SELECT tabrecepcao.ID_Recepcao AS Num, tabgranjas.CpNomeGranja AS Granja," _
    & "tabrecepcao.CpData AS [Data Rec], Format([CpData],'mmmm') AS Mês, Format([CpData],'ww') AS Semana," _
    & "tabrecepcao.CpGuiaTransitoAnimal AS Guia, tabrecepcao.CpPlacaCaminhao AS Placa," _
    & "tabrecepcao.CpNumeroTicketPesagem AS Ticket, tabrecepcao.CpSexo AS Sexo, tabrecepcao.CpTipo AS Tipo," _
    & "tabrecepcao.CpQuantidadeRecebidaCabeca AS [Qtd Rec Cb], tabrecepcao.CpQuantidadeRecebidaKg AS [Qtd Rec Kg]," _
    & "tabrecepcao.CpMortalidadeTransporteCabeca AS [Mort Cab], tabrecepcao.CpCondenacaoTotalCabeca AS [Cond Cab]," _
    & "tabrecepcao.CpQuantidadeAvesAbatidasCabeca AS [Abat Cab], ([CpQuantidadeRecebidaKg])/([CpQuantidadeRecebidaCabeca]) AS PesoMedio," _
    & "([CpCondenacaoTotalCabeca])*([PesoMedio]) AS [Cond Kg], (([CpCondenacaoTotalCabeca])/([CpQuantidadeRecebidaCabeca]))*100 AS [Cond Total%]," _
    & "([CpMortalidadeTransporteCabeca])*([PesoMedio]) AS [Mort Tpt Kg], (([CpMortalidadeTransporteCabeca])/([CpQuantidadeRecebidaCabeca]))*100 AS [Mort Tpt %]," _
    & "([CpQuantidadeRecebidaCabeca])-([CpMortalidadeTransporteCabeca])-([CpCondenacaoTotalCabeca]) AS [Qtd Abt Cb]," _
    & "([QuantidadeAvesAbatidasCabeca])*([PesoMedio]) AS [Qtd Abt Kg] FROM tabgranjas LEFT JOIN tabrecepcao ON tabgranjas.ID_Granja = tabrecepcao.ID_Granja_Rel" _
    & " WHERE (((tabrecepcao.ID_Recepcao) Is Not Null)) And ((tabrecepcao.CpData >=#" & Format(Me.DataInicial, "mm/dd/yyyy") & "#) And (tabrecepcao.CpData <=#" & Format(Me.DataFinal, "mm/dd/yyyy") & "#))"
    if not isnull(me!cpdata) then
    strSQL = strSQL & " And tabrecepcao.CpPlacaCaminhao ='" & Me.CboPlaca & "'"
    end if
    strSQL = strSQL & " ORDER BY tabrecepcao.CpData;"
    avatar
    Convidado
    Convidado


    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Convidado 3/9/2011, 20:24

    Agora amigão.. na consulta gráfica como fazer isto?

    Criterio entre datas e placa....Podendo filtrar tanto por uma como por outra ou mesmo ambas?
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Avelino Sampaio 4/9/2011, 09:12

    Olá Hary

    Foi um ótimo exercício montar isso pela consulta gráfica.

    Baixe aqui o exemplo

    Teste todas as combinações. Com uma data, com as duas datas, sem as datas, com placa, sem placa , SEM NADA.

    Bom estudo!
    avatar
    Convidado
    Convidado


    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Convidado 4/9/2011, 12:45

    Quanto a solução de concatenação entre a SQL e SQL And Critério apresentada por voce , funcionou perfeitamente, inclusive para mais de dois critério

    Esta ai logo abaixo
    Código:
    StrSQL = "SELECT tabrecepcao.ID_Recepcao AS Num, tabgranjas.CpNomeGranja AS Granja," _
    & "tabrecepcao.CpData AS [Data Rec], Format([CpData],'mmmm') AS Mês, Format([CpData],'ww') AS Semana," _
    & "tabrecepcao.CpGuiaTransitoAnimal AS Guia, tabrecepcao.CpPlacaCaminhao AS Placa," _
    & "tabrecepcao.CpNumeroTicketPesagem AS Ticket, tabrecepcao.CpSexo AS Sexo, tabrecepcao.CpTipo AS Tipo," _
    & "tabrecepcao.CpQuantidadeRecebidaCabeca AS [Qtd Rec Cb], tabrecepcao.CpQuantidadeRecebidaKg AS [Qtd Rec Kg]," _
    & "tabrecepcao.CpMortalidadeTransporteCabeca AS [Mort Cab], tabrecepcao.CpCondenacaoTotalCabeca AS [Cond Cab]," _
    & "tabrecepcao.CpQuantidadeAvesAbatidasCabeca AS [Abat Cab], ([CpQuantidadeRecebidaKg])/([CpQuantidadeRecebidaCabeca]) AS PesoMedio," _
    & "([CpCondenacaoTotalCabeca])*([PesoMedio]) AS [Cond Kg], (([CpCondenacaoTotalCabeca])/([CpQuantidadeRecebidaCabeca]))*100 AS [Cond Total%]," _
    & "([CpMortalidadeTransporteCabeca])*([PesoMedio]) AS [Mort Tpt Kg], (([CpMortalidadeTransporteCabeca])/([CpQuantidadeRecebidaCabeca]))*100 AS [Mort Tpt %]," _
    & "([CpQuantidadeRecebidaCabeca])-([CpMortalidadeTransporteCabeca])-([CpCondenacaoTotalCabeca]) AS [Qtd Abt Cb]," _
    & "([QuantidadeAvesAbatidasCabeca])*([PesoMedio]) AS [Qtd Abt Kg] FROM tabgranjas LEFT JOIN tabrecepcao ON tabgranjas.ID_Granja = tabrecepcao.ID_Granja_Rel" _
    & " WHERE (((tabrecepcao.ID_Recepcao) Is Not Null)) And ((tabrecepcao.CpData >=#" & Format(Me.DataInicial, "mm/dd/yyyy") & "#) And (tabrecepcao.CpData <=#" & Format(Me.DataFinal, "mm/dd/yyyy") & "#))"
    if not isnull(me!cpdata) then
    strSQL = strSQL & " And tabrecepcao.CpPlacaCaminhao ='" & Me.CboPlaca & "'"
    end if
    strSQL = strSQL & " ORDER BY tabrecepcao.CpData;"

    Testarei a outra e retorno...

    Obrigado amigão
    avatar
    Convidado
    Convidado


    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Convidado 6/9/2011, 17:58

    Realmente Amigo Avelino.. está de enrrolar os miolos...Muito Bom!

    Ainda chego la...



    Cumprimentos...

    Conteúdo patrocinado


    [Resolvido]Filtro por Data em consulta listBox Empty Re: [Resolvido]Filtro por Data em consulta listBox

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 08:58