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


4 participantes

    [Resolvido]Consulta com dois critérios usando SeImed

    avatar
    Antonybrazil
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/04/2011

    [Resolvido]Consulta com dois critérios usando SeImed Empty [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  Antonybrazil 10/4/2014, 19:42

    Bom dia. Estou tentando criar uma consulta que utiliza o critério 1 se o campo filtro estiver preenchido ou utiliza do critério dois se o campo filtro não estiver preenchido. O critério 1 funciona (quando o campo filtro esta preenchido ele é utilizado como critério) mas o critério 2 não. A ideia do critério dois é retornar todos os valores se o campo filtro estiver em branco.

    Uma luz? Obrigado


    SeImed(DPesquisa("[Periodo]";"Relatorios")>"";DPesquisa("[Periodo]";"Relatorios");([Periodo]) É Negado Nulo)
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Consulta com dois critérios usando SeImed Empty Re: [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  Leandro 10/4/2014, 20:04

    Eu não entendi muito bem qual é o campo filtro, mas tente algo assim:

    IIF(IsNull([Filtro]);DPesquisa("[Periodo]";"Relatorios"))

    avatar
    Antonybrazil
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/04/2011

    [Resolvido]Consulta com dois critérios usando SeImed Empty Re: [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  Antonybrazil 11/4/2014, 13:51

    Vou tentar explicar melhor. A expressão que passei esta localizada na linha "Critérios" de uma consulta. O critério de consulta é baseado em um campo de uma tabela. Caso este campo esteja preenchido eu o utilizo como Critério de consulta, caso não esteja preenchido eu gostaria que todos os registros da tabela aparecessem.

    =IIf(Expressão , Parte verdadeira, Parte Falsa)

    Eu estou tendo problemas apenas com a parte falsa da expressão.

    obrigado
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Consulta com dois critérios usando SeImed Empty Re: [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  Leandro 11/4/2014, 15:21

    Tente assim:

    SeImed(Not IsNull(DPesquisa("[Periodo]";"Relatorios"));DPesquisa("[Periodo]";"Relatorios");"")

    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Consulta com dois critérios usando SeImed Empty Re: [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  Cláudio Más 11/4/2014, 16:19

    .


    Última edição por Cláudio Más em 12/4/2014, 13:56, editado 1 vez(es)
    avatar
    Antonybrazil
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/04/2011

    [Resolvido]Consulta com dois critérios usando SeImed Empty Re: [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  Antonybrazil 12/4/2014, 04:39

    Boa noite Leandro. Infelizmente não dá certo. A consulta não retorna nenhum resultado quando o campo de onde se busca o critério esta vazio.
    clynton
    clynton
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 309
    Registrado : 08/07/2013

    [Resolvido]Consulta com dois critérios usando SeImed Empty Re: [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  clynton 12/4/2014, 07:43

    Mande exemplo das informações que estão sendo manipuladas e que resultados você pretende obter para as duas situações.
    clynton
    clynton
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 309
    Registrado : 08/07/2013

    [Resolvido]Consulta com dois critérios usando SeImed Empty Re: [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  clynton 28/5/2014, 16:45

    Luis,

    Se já tiver solucionado, por favor marque o tópico como [Resolvido], se não, diga-nos como está a situação.


    .................................................................................
    Cumprimentos...


    Atenciosamente,
    Rogério Clynton Ribeiro


    __________________________________________________________________________

    "Ninguém é tão grande que não possa aprender e nem tão pequeno que não possa ensinar."
    avatar
    Antonybrazil
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/04/2011

    [Resolvido]Consulta com dois critérios usando SeImed Empty Re: [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  Antonybrazil 28/5/2014, 18:28

    Não consegui resolver usando o SeImed. Tive que utilizar VBA para criar uma nova consulta a cada vez que o filtro fosse utilizado.


    Código:

    Public Sub SubVisualizar()
    On Error GoTo Erro:

    Dim Filtro As String

    Filtro = fncFiltrar()

    If Filtro = "Lote > ''" Then
    If MsgBox("Nenhum filtro foi selecionado. Deseja consolidar todos os lotes do banco de dados?", vbYesNo + vbExclamation, "Atenção") = vbNo Then
    Exit Sub
    End If
    End If

    Dim Sql As String

    Sql = "SELECT DLookUp(""[Periodo]"",""Relatorios"") AS Periodo, DLookUp(""[EnteFederado]"",""Ident"") AS Cidade, " _
    & "Sum([EstimHIV]) AS SomaEstimHIV, Sum([EStimSifilis]) AS SomaEstimSifilis, Sum([EstimHbsAg]) AS SomaEstimHbsAg, Sum([EstimHCV]) AS SomaEstimHCV, Sum([Campo0]) AS Soma0, Sum([Campo1]) AS Soma1, Sum([Campo2]) AS Soma2, Sum([Campo3]) AS Soma3, " _
    & "Sum([Campo4]) AS Soma4, Sum([Campo5]) AS Soma5, Sum([Campo6]) AS Soma6, Sum([Campo7]) AS Soma7, Sum([Campo8]) AS Soma8, Sum([Campo9]) AS Soma9, Sum([Campo10]) AS Soma10, Sum([Campo11]) AS Soma11, " _
    & "Sum([Campo12]) AS Soma12, Sum([Campo13]) AS Soma13, Sum([Campo14]) AS Soma14, Sum([Campo15]) AS Soma15, Sum([Campo16]) AS Soma16, Sum([Campo17]) AS Soma17, Sum([Campo18]) AS Soma18, Sum([Campo19]) AS Soma19, Sum([Campo20]) AS Soma20, Sum([Campo21]) AS Soma21, " _
    & "Sum([Campo22]) AS Soma22, Sum([Campo23]) AS Soma23, Sum([Campo24]) AS Soma24, Sum([Campo25]) AS Soma25, Sum([Campo26]) AS Soma26, Sum([Campo27]) AS Soma27, Sum([Campo28]) AS Soma28, Sum([Campo29]) AS Soma29, Sum([Campo30]) AS Soma30, Sum([Campo31]) AS Soma31, " _
    & "Sum([Campo32]) AS Soma32, Sum([Campo33]) AS Soma33, Sum([Campo34]) AS Soma34, Sum([Campo35]) AS Soma35, Sum([Campo36]) AS Soma36, Sum([Campo37]) AS Soma37, Sum([Campo38]) AS Soma38, Sum([Campo39]) AS Soma39, Sum([Campo40]) AS Soma40, Sum([Campo41]) AS Soma41, " _
    & "Sum([Campo42]) AS Soma42, Sum([Campo43]) AS Soma43, Sum([Campo44]) AS Soma44, Sum([Campo45]) AS Soma45, Sum([Campo46]) AS Soma46, Sum([Campo47]) AS Soma47, Sum([Campo48]) AS Soma48, Sum([Campo49]) AS Soma49, Sum([Campo50]) AS Soma50, Sum([Campo51]) AS Soma51, " _
    & "Sum([Campo52]) AS Soma52, Sum([Campo53]) AS Soma53, Sum([Campo54]) AS Soma54, Sum([Campo55]) AS Soma55, Sum([Campo56]) AS Soma56, Sum([Campo57]) AS Soma57, Sum([Campo58]) AS Soma58, Sum([Campo59]) AS Soma59, Sum([Campo60]) AS Soma60, Sum([Campo61]) AS Soma61, " _
    & "Sum([Campo62]) AS Soma62, Sum([Campo63]) AS Soma63, Sum([Campo64]) AS Soma64, Sum([Campo65]) AS Soma65, Sum([Campo66]) AS Soma66, Sum([Campo67]) AS Soma67, Sum([Campo68]) AS Soma68, Sum([Campo69]) AS Soma69, Sum([Campo70]) AS Soma70, Sum([Campo71]) AS Soma71, " _
    & "Sum([Campo72]) AS Soma72, Sum([Campo73]) AS Soma73, Sum([Campo74]) AS Soma74, Sum([Campo75]) AS Soma75, Sum([Campo76]) AS Soma76, Sum([Campo77]) AS Soma77, Sum([Campo78]) AS Soma78, Sum([Campo79]) AS Soma79, Sum([Campo80]) AS Soma80, Sum([Campo81]) AS Soma81, " _
    & "Sum([Campo82]) AS Soma82, Sum([Campo83]) AS Soma83, Sum([Campo84]) AS Soma84, Sum([Campo85]) AS Soma85, Sum([Campo86]) AS Soma86, Sum([Campo87]) AS Soma87, Sum([Campo88]) AS Soma88, Sum([Campo89]) AS Soma89, Sum([Campo90]) AS Soma90, Sum([Campo91]) AS Soma91, " _
    & "Sum([Campo92]) AS Soma92, Sum([Campo93]) AS Soma93, Sum([Campo94]) AS Soma94, Sum([Campo95]) AS Soma95, Sum([Campo96]) AS Soma96, Sum([Campo97]) AS Soma97, Sum([Campo98]) AS Soma98, Sum([Campo99]) AS Soma99, Sum([Campo100]) AS Soma100, Sum([Campo101]) AS Soma101, " _
    & "Sum([Campo102]) AS Soma102, Sum([Campo103]) AS Soma103, Sum([Campo104]) AS Soma104, Sum([Campo105]) AS Soma105, Sum([Campo106]) AS Soma106, Sum([Campo107]) AS Soma107, Sum([Campo108]) AS Soma108, Sum([Campo109]) AS Soma109, Sum([Campo110]) AS Soma110, " _
    & "Sum([Campo111]) AS Soma111, Sum([Campo112]) AS Soma112, Sum([Campo113]) AS Soma113, Sum([Campo114]) AS Soma114, Sum([Campo115]) AS Soma115, Sum([Campo116]) AS Soma116, Sum([Campo117]) AS Soma117, Sum([Campo118]) AS Soma118, Sum([Campo119]) AS Soma119, " _
    & "Sum([Campo120]) AS Soma120, Sum([Campo121]) AS Soma121, Sum([Campo122]) AS Soma122, Sum([Campo123]) AS Soma123, Sum([Campo124]) AS Soma124, Sum([Campo125]) AS Soma125, Sum([Campo126]) AS Soma126, Sum([Campo127]) AS Soma127, Sum([Campo128]) AS Soma128, " _
    & "Sum([Campo129]) AS Soma129, Sum([Campo130]) AS Soma130, Sum([Campo131]) AS Soma131, Sum([Campo132]) AS Soma132, Sum([Campo133]) AS Soma133, Sum([Campo134]) AS Soma134, Sum([Campo135]) AS Soma135, Sum([Campo136]) AS Soma136, Sum([Campo137]) AS Soma137, " _
    & "Sum([Campo138]) AS Soma138, Sum([Campo139]) AS Soma139, Sum([Campo140]) AS Soma140, Sum([Campo141]) AS Soma141, Sum([Campo142]) AS Soma142, Sum([Campo143]) AS Soma143, Sum([Campo144]) AS Soma144, Sum([Campo145]) AS Soma145, Sum([Campo146]) AS Soma146, " _
    & "Sum([Campo147]) AS Soma147, Sum([Campo148]) AS Soma148, Sum([Campo149]) AS Soma149, Sum([Campo150]) AS Soma150, Sum([Campo151]) AS Soma151, Sum([Campo152]) AS Soma152, Sum([Campo153]) AS Soma153, Sum([Campo154]) AS Soma154, Sum([Campo155]) AS Soma155, " _
    & "Sum([Campo156]) AS Soma156, Sum([Campo157]) AS Soma157, Sum([Campo158]) AS Soma158, Sum([Campo159]) AS Soma159, Sum([Campo160]) AS Soma160, Sum([Campo161]) AS Soma161, Sum([Campo162]) AS Soma162, Sum([Campo163]) AS Soma163, Sum([Campo164]) AS Soma164, " _
    & "Sum([Campo165]) AS Soma165, Sum([Campo166]) AS Soma166, Sum([Campo167]) AS Soma167, Sum([Campo168]) AS Soma168, Sum([Campo169]) AS Soma169, Sum([Campo170]) AS Soma170, Sum([Campo171]) AS Soma171"

    Sql = Sql & " FROM RltMapa "
    Sql = Sql & " WHERE " & Filtro

    Dim db As DAO.Database
    Set db = CurrentDb()
    Dim rs As DAO.Recordset
    Set rs = db.OpenRecordset(Sql)
     
    If Not rs.EOF Then 'verifica se a consulta retornou vazia
    Else
    MsgBox "Nenhum lote encontrado com os critérios utilizados.", vbInformation, "Atenção"
    Exit Sub
    End If
     
    'Apaga Consulta Existente
    DoCmd.DeleteObject acQuery, "ConsVisualizar"
    'Cria Consulta
    Dim qry As DAO.QueryDef
    Set qry = db.CreateQueryDef("ConsVisualizar", Sql)


    DoCmd.OpenReport "MapaLote", acViewPreview

    Erro:
    Select Case Err.Number
        Case 0
        Case 2110
        Case Else
        Call TratarErros("Módulo Geral")
    End Select

    End Sub



    clynton
    clynton
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 309
    Registrado : 08/07/2013

    [Resolvido]Consulta com dois critérios usando SeImed Empty Re: [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  clynton 28/5/2014, 18:56

    O Fórum agradece o retorno.


    .................................................................................
    Cumprimentos...


    Atenciosamente,
    Rogério Clynton Ribeiro


    __________________________________________________________________________

    "Ninguém é tão grande que não possa aprender e nem tão pequeno que não possa ensinar."

    Conteúdo patrocinado


    [Resolvido]Consulta com dois critérios usando SeImed Empty Re: [Resolvido]Consulta com dois critérios usando SeImed

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 17:52