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]Filtrar conforme campos preenchidos

    Carvalho
    Carvalho
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 210
    Registrado : 19/01/2013

    [Resolvido]Filtrar conforme campos preenchidos Empty [Resolvido]Filtrar conforme campos preenchidos

    Mensagem  Carvalho 24/12/2020, 15:28

    Boa tarde, pessoal

    tenho um formuolario com 6 campos, gostaria filtrasse conforme informaçoes do campo, caso um dos campos fique em branco ele desconsiderasse, mais não estou conseguindo fazer dessa maneira,

    segue o código que estou usando.

    Código:
     DoCmd.OpenReport "RltSinteticoPendentePagamento", acViewPreview, , "dataCirurgia between  # " & Format(Me!DataInicial, "mm/dd/yyyy") & " # AND # " & Format(Me!DataFinal, "mm/dd/yyyy") & " # And Medico = '" & cboCliente.Column(1) & "' and Hospital = '" & txHospital.Column(0) & "' and Empresa = '" & txtEmpresa.Column(0) & "' and CobrancaCoop = '" & txtContratante.Column(0) & "' and convenio = '" & TxtConvenio.Column(0) & "' and status ='" & "PENDENTE PG" & "'"
     
    Carvalho
    Carvalho
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 210
    Registrado : 19/01/2013

    [Resolvido]Filtrar conforme campos preenchidos Empty Re: [Resolvido]Filtrar conforme campos preenchidos

    Mensagem  Carvalho 24/12/2020, 23:01

    Pessoal consegui resolver com o seguinte código.


    Código:


    Private Sub Relatorio_Analitico()

      Dim strMsg As String, strTítulo As String
      Dim intEstilo As Integer
      Dim sel As Variant
      Dim strWhere As String
     
     'Usa a data como Criterio
    If Not IsNull(Me!DataInicial) And Not IsNull(Me!DataFinal) Then
        strWhere = "dataCirurgia between  # " & Format(Me!DataInicial, "mm/dd/yyyy") & " # AND # " & Format(Me!DataFinal, "mm/dd/yyyy") & " # AND "
    End If
     'Usa o Tipo como Criterio
    If Not IsNull(Me!cboCliente) Then
        strWhere = strWhere & "Medico = '" & cboCliente.Column(1) & "' AND "
    End If
     

     'Usa o Profissional como Criterio
    If Not IsNull(Me!txHospital) Then
        strWhere = strWhere & "hospital = '" & txHospital.Column(0) & "' AND "
    End If

     'Usa o Profissional como Criterio
    If Not IsNull(Me!txtEmpresa) Then
        strWhere = strWhere & "Empresa = '" & txtEmpresa.Column(0) & "' AND "
    End If

     'Usa o Profissional como Criterio
    If Not IsNull(Me!txtContratante) Then
        strWhere = strWhere & "CobrancaCoop = '" & txtContratante.Column(0) & "' AND "
    End If

     'Usa o Profissional como Criterio
    If Not IsNull(Me!TxtConvenio) Then
        strWhere = strWhere & "Convenio = '" & TxtConvenio.Column(0) & "' AND "
    End If

    'Usa o Profissional como Criterio
       
       
        strWhere = strWhere & "status ='" & "PENDENTE PG" & "' AND "


    'Remove o Ultimo AND extra
    strWhere = Left(strWhere, Len(strWhere) - 5)

    'Verifica se selecionou algum filtro, se nao abre o relatorio, se sim abra filtrando
    If Nz(Len(strWhere), 0) > 0 Then
        DoCmd.OpenReport "RltPendentePagamentoAnalitico", acPreview, , strWhere

    end if

    End Sub



    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2698
    Registrado : 22/11/2016

    [Resolvido]Filtrar conforme campos preenchidos Empty Re: [Resolvido]Filtrar conforme campos preenchidos

    Mensagem  DamascenoJr. 24/12/2020, 23:57

    Carvalho, parabéns pelo avanço. cheers

    Apenas para conhecimento:

    A função Nz previne nulos, ou seja, se o que é passado no primeiro parâmetro puder ser nulo, então o valor considerado será o valor passado no segundo parâmetro.

    Código:
    Nz(SeForNulo, DevolvaIsto)

    O objeto da função Nz jamais é aplicado em uma variável do tipo texto (string) pois esse tipo de variável nunca é nulo, mas sim string vazia "". E nulo não é igual a nada, nem mesmo igual a outro nulo.

    Imagine uma variável string como um copo vazio esperando conteúdo. O copo sempre estará lá, mesmo que vazio. Nulo seria se o copo nem existisse.

    A correta aplicação para verificar se a string está vazia é
    Código:
    iif(UmaStringQualquer = "", ValorSubstituindoStringVazia, ValorOriginalDaString)

    No seu código, a verificação poderia ser feita assim

    copo diferente de copo vazio
    Código:
    If strWhere <> "" Then

    ou
    quantidade de gotas do conteúdo do copo maior que zero (ou mesmo que copo com algum conteúdo)
    Código:
    If Len(strWhere) > 0 Then

    Boas festas e bons estudos.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Carvalho
    Carvalho
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 210
    Registrado : 19/01/2013

    [Resolvido]Filtrar conforme campos preenchidos Empty Re: [Resolvido]Filtrar conforme campos preenchidos

    Mensagem  Carvalho 13/1/2021, 00:30

    Um professor como você tem que aprender mesmo, só tenho a agradecer ao forum e vocês que sempre nos ajudam nos momentos dificeis.

      Data/hora atual: 16/4/2021, 21:40