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 Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    diegojacob
    diegojacob
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 122
    Registrado : 06/07/2011

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  diegojacob 22/12/2011, 16:36

    Olá pessoal,
    estou alterando um formulário para relatórios mas estou com uma pequena dificuldade na sintaxe:

    Meu formulário não possui vínculo com tabelas e minhas consultas são via códicos, o problema é que possuo dois campos texto para usar como filtro de "Idade Inicial" e "Idade Final", quando eu insiro o valor na "data Inicial" e também na "Data Final", meu relatório flui perfeitamente, agora quando algum dos campos fica nulo, ocorre erro 3075.

    Erro de sintaxe (Operador faltando) na expressão consulta [Idade]>=And[Idade]<=.

    Sendo que:
    [Idade] é um campo do Relatório que mostra a idade através de uma função (CalculaIdade) que encontrei no fórum, que transforma a data de nascimento em idade.

    Códico que utilizo:


    Filtro4 = "[Idade]>=" & IdadeInicial & "And [Idade] <= " & idadeFinal



    Se houver valor na "idadeInicial" e na "idadeFinal" o relatório filtra normalmente, caso apenas uma esteja nulo, ocorre o erro.

    Oque preciso fazer para quando algum campo estiver nulo ele carrega todos os valores, tanto no inicial quanto no final?
    O problema está apenas no "Filtro4".

    Abaixo segue o código completo para melhor entendimento.



    Private Sub GerarRelatorio_Click()

    Dim stDocName As String
    Dim E As String

    Dim i As Variant
    E = " And "
    ou = " or "


    Filtro = ""
    Filtro1 = ""
    Filtro2 = ""
    Filtro3 = ""

    For Each i In FiltroCidade.ItemsSelected

    If Filtro <> "" Then
    Filtro = Filtro & " or "
    End If

    Filtro = Filtro & "[ID_Cidade] like '" & FiltroCidade.ItemData(i) & "*'"

    Next i

    For Each i In FiltroBairro.ItemsSelected

    If Filtro1 <> "" Then
    Filtro1 = Filtro1 & " or "
    End If

    Filtro1 = Filtro1 & "[ID_Bairro] like '" & FiltroBairro.ItemData(i) & "*'"

    Next i


    For Each i In FiltroEstCivil.ItemsSelected

    If Filtro2 <> "" Then
    Filtro2 = Filtro2 & " or "
    End If

    Filtro2 = Filtro2 & "[ID_Estado_Civil] like '" & FiltroEstCivil.ItemData(i) & "*'"

    Next i


    For Each i In FiltroSexo.ItemsSelected

    If Filtro3 <> "" Then
    Filtro3 = Filtro3 & " or "
    End If

    Filtro3 = Filtro3 & "[ID_Tipo_Sexo] like '" & FiltroSexo.ItemData(i) & "*'"


    Next i


    Filtro4 = "[Idade]>=" & De_Idade & "And [Idade] <= " & Ate_Idade


    FiltroGeral = "(" & Filtro & ")" & E & "(" & Filtro1 & ")" & E & "(" & Filtro2 & ")" & E & "(" & Filtro3 & ")"

    If Nz(FiltroGeral) = "" Then
    FiltroFinal = Filtro4 ' & E & Filtro5 ' & E & Filtro6
    Else
    FiltroFinal = "(" & FiltroGeral & ")" & E & Filtro4 '& E & Filtro5 '& E & Filtro6

    End If

    stDocName = Filtro_Relatorio.Column(2)

    End Sub
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  JPaulo 22/12/2011, 17:04

    Amigão já tentou utilizar a função Nz para os Nulos ?

    Dê uma testada assim:

    Filtro4 = "[Idade]>=" & Nz(De_Idade, 0) & "And [Idade] <= " & Nz(Ate_Idade, 0)



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new Instruções SQL como utilizar...
    diegojacob
    diegojacob
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 122
    Registrado : 06/07/2011

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  diegojacob 22/12/2011, 17:31

    Obrigado pela ajuda amigo,
    funcionou perfeitamente, só tive que acrescentar um valor final para não amarrar no zero.

    Filtro4 = "[Idade]>=" & Nz(De_Idade, 0) & "And [Idade] <= " & Nz(Ate_Idade, 500)

    Obrigado e Feliz Natal e um próspero Ano Novo.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  JPaulo 22/12/2011, 17:35

    Obrigado pelo retorno e Feliz Natal... santa


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new Instruções SQL como utilizar...
    diegojacob
    diegojacob
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 122
    Registrado : 06/07/2011

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  diegojacob 4/1/2012, 12:58

    Amigo JPaulo, somente mais uma dúvida:

    Campos com DATA, nesse mesmo contexto, eu não poderia usar o NZ, correto?
    Filtro5 = "[Data]>=" & Nz(De_Data, 0) & "And [Data] <= " & Nz(Ate_Data, 500)

    Abraços.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  JPaulo 4/1/2012, 14:12

    Pode sim, aplicando uma data aos Nulos:

    Nz([DATA];"01-01-1999")



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new Instruções SQL como utilizar...
    diegojacob
    diegojacob
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 122
    Registrado : 06/07/2011

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  diegojacob 4/1/2012, 14:34

    Ainda não funcionou,
    tentei duas maneiras, conforme voce comentou:

    OBS: [Data] é o campo que contem a data na consulta e "DatadeEvento e DataAteEvento" são os Campos texto do Form que quero buscar, intervalo "De" "Até".

    Filtro = "[Data]>=" & Nz(DataDeEvento, "1-1-1999") & "And [Data] <=" & Nz(DataAteEvento, "1-12-2020")
    e também usando #
    Filtro = "[Data]>=" & Nz(DataDeEvento, #1/1/1999#) & "And [Data] <=" & Nz(DataAteEvento, #1/12/2020#)
    Mas ambos não me retornam resultados.

    Mesmo assim obrigado, continuarei tentando solucionar, caso possa ajudar, fico grato.

    Abraços Mr. JPaulo.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  JPaulo 4/1/2012, 14:48

    Faça o teste dando um CDate nesses campos;

    Filtro = "[Data]>=" & CDate(Nz(DataDeEvento, "1/1/1999")) & "And [Data] <=" & CDate(Nz(DataAteEvento, "1/12/2020"))



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new Instruções SQL como utilizar...
    diegojacob
    diegojacob
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 122
    Registrado : 06/07/2011

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  diegojacob 4/1/2012, 15:44

    Ainda não Funcionou amigo JPaulo,
    preenchendo ou não os campos para o filtro, não me retorna valo algum.

    Abraços
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  JPaulo 4/1/2012, 16:30

    Amigão realmente assim torna-se mais dificil.

    Para eu testar aqui teria de recriar mais ou menos o seu banco, se tivesse como postar somente parte do banco, eu acompanhava no VBA o que se estava a passar.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Folder_announce_new Instruções SQL como utilizar...
    diegojacob
    diegojacob
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 122
    Registrado : 06/07/2011

    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  diegojacob 4/1/2012, 17:12

    Caro amigo,
    infelizmente, daqui onde estou, não possuo acesso a upload e a alguns sites, logo não consigo fazer muita coisa.
    Mas tentarei fazer isso de casa a noite.
    Abraços e obrigado mais uma vez.

    Conteúdo patrocinado


    [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075" Empty Re: [Resolvido]Filtro Idade inicial a Idade Final no VBA erro de Sintaxe "3075"

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/11/2024, 05:12