MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Compartilhe

    JIR
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 73
    Registrado : 28/08/2016

    [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Mensagem  JIR em 2/3/2018, 00:30

    Boa Noite,

    agradecimentos  todos que no dia a dia ajudam nas dúvidas

    minha dúvida consiste em apresentar um relatório baseado numa consulta de várias tabelas sendo que o relatório ou consulta contará quantos funcionários estão em inactividade na data de 31-12-9999, mas caso esse mesmo funcionário tenha algum registo 6004 no campo codausencia na tbausencias , esse funcionário não devia aparecer no relatório, ou não contava

    tentei colocar na consulta <>6004, mas quando passa para o relatório, apenas é omitido o código 6004, mas o funcionário aparece no relatório e não devia

    para melhor perceção anexo bd com exemplo, no relatório os funcionários que aparecem com código de ausência 6004, esse funcionário não deve contar ou não deve aparecer no relatório


    Atentamente

    José Maria
    Anexos
    Inactividade.zip
    bd Filtro
    Você não tem permissão para fazer download dos arquivos anexados.
    (173 Kb) Baixado 6 vez(es)


    Última edição por JIR em 2/3/2018, 12:45, editado 1 vez(es)

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Mensagem  Noobezinho em 2/3/2018, 10:51

    Jose Silva

    Vi a consulta e o relatório,

    Abri o relatório com o campo CodAusencia sem critério, e ela retornou 25 registros, sendo que 3 deles estão com  esse campo em branco.

    Coloquei o <>6004  no critério da coluna, e retornou 18 registros, e tanto na consulta como no relatório, não aparece esses registros.

    [ ]'s

    JIR
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 73
    Registrado : 28/08/2016

    Re: [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Mensagem  JIR em 2/3/2018, 12:42

    Boa Tarde, Noobezinho


    O que pretendo é que no relatório mostre todos os funcionários que estejam com Inactividade, mesmo que o campo CodAusencia seja nulo, mas
    não quero que mostre os funcionários nem registo sempre que o campo CodAusencia contem 6004

    deveria aparecer no exemplo apenas 4 funcionários

    49253 está em inactividade e a ausência em branco
    201380 está em inactividade e a ausência em branco
    10942 está em inactividade e a ausência em branco
    34303 está em inactividade e tem ausências 6000, 6800, 6800, 6002, 6008

    não devem aparecer no relatório, embora esteja em inatividade, porque tem pelo menos um registo no codAusencia 6004

    20736
    42012
    37116
    5845

    José Maria

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Mensagem  Noobezinho em 2/3/2018, 13:34

    Jose

    Acredito que tenha que fazer consultas aninhadas.

    Por exemplo, começa com uma consulta que filtre o código 6004 salve essa consulta.

    Abra nova consulta e adicione essa consulta que foi feita, e acrescente outra(s) tabela(s).

    Se precisar, salve essa consulta, e utilize-a numa próxima.

    E assim sucessivamente, até obter o resultado desejado.

    Não me aventuro a fazer, pois não sei a implicação de cada tabela.

    É o que posso ajudar amigo Neutral

    [ ]'s

    JIR
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 73
    Registrado : 28/08/2016

    Re: [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Mensagem  JIR em 4/3/2018, 22:58

    Olá

    tentei de varias consultas, uma com filtro codausencia 6004, outra com restantes códigos e dessas fiz outra e tentei esse filtro, mas não deu certo

    pensei noutra situação via código VB que seria no relatório onde conta o total de funcionários em inactividade, só contava os funcionários que não tem nenhum registo 6004 no CodAusencia, só que não sei como fazer pois não entendo de VB, tenho apenas o código que marceloarboit me desenhou para este relatório:

    Private Sub PageHeader_Format(Cancel As Integer, FormatCount As Integer)
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("Select Distinct [Nº ORD] FROM qryDistrCustosInactividade")
    Me.TotalGeral.Value = rs.RecordCount
    rs.Close
    Set rs = Nothing
    End Sub


    se for possível adaptar, já satisfaz

    Agradecimentos

    José Maria
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Mensagem  Alexandre Neves em 10/3/2018, 11:50

    Bom dia,
    Na origem do relatório coloque
    SELECT * FROM qryDistrCustosInactividade WHERE CodAusencia<>6004;


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    JIR
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 73
    Registrado : 28/08/2016

    Re: [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Mensagem  JIR em 11/3/2018, 17:22

    Boa Tarde,


    Coloquei conforme indicou, mas a contagem de funcionários continua errada, ou seja apenas elimina os registos que tem codAusencia 6004, mas a ideia é:

    Sempre que algum funcionário tenha na tbAusencias, codausencia 6004, não deveria aparecer no relatório, nem o registo que contem 6004, nem todos os outros, ou seja se o funcionário tiver pelo menos um registo 6004, não deve esse funcionário constar no relatorio


    deveria aparecer no exemplo apenas 4 funcionários

    49253 está em inactividade e a ausência em branco
    201380 está em inactividade e a ausência em branco
    10942 está em inactividade e a ausência em branco
    34303 está em inactividade e tem ausências 6000, 6800, 6800, 6002, 6008


    não devem aparecer no relatório, embora esteja em inatividade, porque tem pelo menos um registo no codAusencia 6004

    20736
    42012
    37116
    5845


    Atentamente
    José Maria
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Mensagem  Alexandre Neves em 11/3/2018, 18:52

    Boa tarde,
    Elimine a consulta
    Coloque na origem do relatório
    SELECT * FROM (SELECT [Nº ORD], CCusto, [DESIGNAÇAO ENT ANALI], Pontos.DataInicio, Pontos.DataFim, tbAusencias.CodAusencia, DesigAusencia, tbAusencias.DataInicio AS InAusencia, tbAusencias.DataFim AS FimAusencia, NOME, Ficheiro_Mestre.CodEmpresa, tbEmpresas.NomeEmpresa, ZONA, SIT FROM ((((Ficheiro_Mestre INNER JOIN Pontos ON Ficheiro_Mestre.[Nº ORDEM] = Pontos.[Nº ORD]) LEFT JOIN [Entidades Analiticas] ON Pontos.CCusto = [Entidades Analiticas].[E ANAL]) LEFT JOIN tbEmpresas ON Ficheiro_Mestre.CodEmpresa = tbEmpresas.CodEmpresa) LEFT JOIN tbAusencias ON Pontos.[Nº ORD] = tbAusencias.NOrdem) LEFT JOIN tbCodAusencia ON tbAusencias.CodAusencia = tbCodAusencia.CodAusencia GROUP BY [Nº ORD], CCusto, [DESIGNAÇAO ENT ANALI], Pontos.DataInicio, Pontos.DataFim, tbAusencias.CodAusencia, DesigAusencia, tbAusencias.DataInicio, tbAusencias.DataFim, NOME, Ficheiro_Mestre.CodEmpresa, tbEmpresas.NomeEmpresa, ZONA, SIT HAVING [DESIGNAÇAO ENT ANALI] Like "*Inactividade*" AND Pontos.DataFim=#12/31/9999# AND SIT=1
    ORDER BY [Nº ORD]) WHERE [Nº ORD] NOT IN (SELECT [Nº ORD] FROM Pontos LEFT JOIN tbAusencias ON Pontos.[Nº ORD] = tbAusencias.NOrdem WHERE CodAusencia=6004)



    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    JIR
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 73
    Registrado : 28/08/2016

    Re: [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Mensagem  JIR em 11/3/2018, 23:55

    Boa Noite,

    muito obrigado, nunca eu lá chegaria, ficou impecável

    mas o relatório continha este código para contar os funcionários na totalidade e por empresa, agora não funciona porque já não tem a consulta

    terá solução


    Option Compare Database

    Private Sub CabeçalhoDoGrupo0_Format(Cancel As Integer, FormatCount As Integer)
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("Select Distinct [Nº ORD] FROM qryDistrCustosInactividade WHERE [CodEmpresa] = '" & Me.CodEmpresa & "'")
    Me.TotalFuncEmp.Value = rs.RecordCount
    rs.Close
    Set rs = Nothing
    End Sub

    Private Sub PageHeader_Format(Cancel As Integer, FormatCount As Integer)
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("Select Distinct [Nº ORD] FROM qryDistrCustosInactividade")
    Me.TotalGeral.Value = rs.RecordCount
    rs.Close
    Set rs = Nothing
    End Sub


    Atentamente
    José Maria

    JIR
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 73
    Registrado : 28/08/2016

    Re: [Resolvido]Filtro em relatorio/consulta apresenta dados incorretos

    Mensagem  JIR em 12/3/2018, 18:32

    Boa Tarde, Alexandre Neves,


    Muito obrigado pelos seus ensinamentos, depois de entender o seu código, verifiquei que gerou o mesmo por consulta de união

    assim criei uma consulta de união com o nome anterior e já funciona


    Agradecimentos a todos pela ajuda

    José Maria

      Data/hora atual: 20/11/2018, 18:19