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]Não pega datas

    avatar
    alantb
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 212
    Registrado : 25/07/2017

    [Resolvido]Não pega datas Empty [Resolvido]Não pega datas

    Mensagem  alantb 17/11/2020, 03:18

    Boa noite, tenho um relatório ligado a uma Consulta Referência Cruzada que quando executo a impressão direta sem datas para imprimir tudo ou por Nome do Produto ou Nome da Categoria, blza. Porém não estou conseguindo informar o período de datas. Já tentei de várias formas e as vezes ignora as datas e carrega tudo; as vezes puxa o mês de seleção correto e logo em seguida ao informar outro período carrega dados de fora do período. Estava tentando adaptar um trecho de um código do colega Damasceno, conforme abaixo mas não estou tendo sucesso. Tentei informar o critério direto na consulta e parâmetros, só que de saida já não reconhece o critério, não sei se é do Access que estou usando, o meu é Access2019, não aceita desse jeito:

    Na Consulta Cruzada:

    É Negado Nulo E Entre [Formulários]![frmRelConsumoMensal]![txtDe] E [Formulários]![frmRelConsumoMensal]![txtAte]

    Nos Parâmetros:

    [Formulários]![frmRelConsumoMensal]![txtDe] - Data e Hora
    [Formulários]![frmRelConsumoMensal]![txtAte] - Data e Hora

    Direto no formulário tava tentando assim:

    Private Sub cmdImprimir_Click()
    Dim strFiltroDatas As String

    Select Case Quadro1
    Case 1

    If IsNull(Me.txtDe) And IsNull(Me.txtAte) Then

    DoCmd.OpenReport "RelValorConsumoMensal", acViewPreview ' IMPRIME TUDO

    ElseIf (Not IsNull(Me.txtDe)) And (Not IsNull(Me.txtAte)) Then ' FILTRA POR DATAS


    strFiltroDatas = "[DataPedido] >=#" & Me.txtDe & "# And [DataPedido] <=#" & Me.txtAte & "#"
    ' strFiltroDatas = "DataPedido>=#" & Format(txtDe, "mm/dd/yyyy") & "#" And DataPedido <= "#" & Format(txtAte, "mm/dd/yyyy") & "#"

    DoCmd.OpenReport "RelValorConsumoMensal", acViewPreview, , strFiltroDatas
    Else
    MsgBox "Digite um período de datas válido.", vbInformation, "Aviso"
    Exit Sub
    End If

    Sempre tenho muitos problemas quando o assunto é datas. Solicito orientações á respeito.

    ALAN
    avatar
    alantb
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 212
    Registrado : 25/07/2017

    [Resolvido]Não pega datas Empty Re: [Resolvido]Não pega datas

    Mensagem  alantb 17/11/2020, 12:44

    Bom dia, desde ontem realizando buscas aqui no forum e então consegui adaptar algo que resolveu a filtragem no meu relatório. Peguei no tópico https://www.maximoaccess.com/t16821-resolvidofiltro-de-data-em-formulario o código que a Roselip estava usando e misturei com o do Damasceno Jr e deu certo. Segue o código: no case 1 sem datas imprime tudo ou com datas filtra o período. No Case 2, sem datas filtra por NomeProduto ou concatena datas e NomeProduto. É isso ai, espero que essa solução sirva para quem esteja na mesma situação. Sendo assim, resolvido!!!

    ALAN

    Case 1
    If Quadro1 = 1 And IsNull(Me.txtDe) And IsNull(Me.txtAte) And IsNull(ComboProduto) Then
    DoCmd.OpenReport "RelValorConsumoMensal", acViewPreview
    Exit Sub
    End If


    If IsNull(Me.txtDe) Or IsNull(Me.txtAte) Then Exit Sub
    Me.Filter = "cdate([DataPedido]) between #" & Format(Me.txtDe, "mm/dd/yyyy") & "# AND #" & Format(Me.txtAte, "mm/dd/yyyy") & "#"
    Me.FilterOn = True
    Me.txtDe = Null
    Me.txtAte = Null

    Me.txtDe.SetFocus

    DoCmd.OpenReport "RelValorConsumoMensalData", acViewPreview, , Me.Filter


    Case 2


    If ComboProduto = 0 Or ComboProduto = "" Then
    MsgBox " Selecione um Produto para emissão do relatório!!", vbExclamation + vbOKOnly, "Relatórios"
    Exit Sub
    End If


    If IsNull(Me.txtDe) And IsNull(Me.txtAte) And Not IsNull(ComboProduto) Then
    DoCmd.OpenReport "RelValorConsumoMensalProduto", acViewPreview, , "NomeProduto = '" & Me!txtProduto & "'"
    Exit Sub
    End If


    If IsNull(Me.txtDe) Or IsNull(Me.txtAte) Then Exit Sub
    strFiltroProduto = "[NomeProduto] = '" & Me.txtProduto & "'"

    Me.Filter = "cdate([DataPedido]) between #" & Format(Me.txtDe, "mm/dd/yyyy") & "# AND #" & Format(Me.txtAte, "mm/dd/yyyy") & "#"
    Me.FilterOn = True
    Me.txtDe = Null
    Me.txtAte = Null

    Me.txtDe.SetFocus

    strFiltroProd = strFiltroProduto & " And " & Me.Filter

    DoCmd.OpenReport "RelValorConsumoMensalData", acViewPreview, , strFiltroProd


      Data/hora atual: 17/4/2021, 18:51