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]Relatório com controles provenientes de duas consultas

    avatar
    Convidado
    Convidado


    [Resolvido]Relatório com controles provenientes de duas consultas Empty Relatório com controles provenientes de duas consultas

    Mensagem  Convidado 22/8/2013, 17:21

    Boa tarde meus caros.
    Estou com o seguinte problema.
    Tenho duas consultas que contam registros. Eu estou meio lesado por ter terminado com remédios e não consegui transformar em uma. Acho que não dá. Mas vamos lá.
    Uma das consultas conta as ocorrências de um campo, e outra consulta conta ocorrências de outros campos. Seguem as mesmas.

    SELECT count(sigilo) AS demandas_em_sigilo
    FROM controle_demanda
    WHERE sigilo = TRUE;

    SELECT COUNT(encerrado) AS encerradas
    FROM controle_demanda
    WHERE encerrado = TRUE;

    Preciso agora carregar o resultado destas consultas de preferência em labels, mas em campos já adiantaria, visto que eu os formataria para aparentar ser labels.

    Bem, se tiver uma forma de fazer isto facilmente no Access, e souberem eu agradeço muito. Eu gostaria de fazer assim como rolam os formulários através das consultas, em que são dispostos todos os campos automaticamente.

    Access Versão 2010.

    Obrigado desde já.

    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Relatório com controles provenientes de duas consultas Empty Re: [Resolvido]Relatório com controles provenientes de duas consultas

    Mensagem  JPaulo 22/8/2013, 17:30

    Existe sim, a função interna DLookup, dê uma pesquisada aqui mesmo.


    .................................................................................
    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]Relatório com controles provenientes de duas consultas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Relatório com controles provenientes de duas consultas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Relatório com controles provenientes de duas consultas Folder_announce_new Instruções SQL como utilizar...
    avatar
    Convidado
    Convidado


    [Resolvido]Relatório com controles provenientes de duas consultas Empty Respondendo JPaulo

    Mensagem  Convidado 26/8/2013, 14:29

    Oi, JPaulo e obrigado por ter respondido.
    Mas acho que não estamos falando da mesma coisa.
    O que eu quis dizer foi o seguinte. Eu quero um relatório que exiba os valores provenientes das duas consultas acima. Pelo que entendi ela autopreenche campos.
    Eu quero gerar um relatório que exiba as contagens dos selects com labels. Acho que é até mais simples.


    Ex:


    Demandas encerradas: 51
    Demandas de caráter sigiloso: 2
    Demandas enviadas: 4
    Demandas não respondidas: 7

    Porém eu queria colocar em um mesmo relatório e não sei com obter os campos do Access.

    E por ai vai. Para contar no banco eu teria que dar um Count(*), na expressão SQL, não sei se há como fazer uma consulta só que conte todos os campos, é complexa.

    Bem, me ajudem ai.

    Obrigado.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Relatório com controles provenientes de duas consultas Empty Re: [Resolvido]Relatório com controles provenientes de duas consultas

    Mensagem  Alexandre Neves 26/8/2013, 15:27

    Boa tarde, Edson

    Com a permissão do Mestre JPaulo

    Não utilize o título da mensagem como texto da mesma.
    Neste seu caso, crie rótulos no relatório e no acontecimento ao abrir do relatório coloque
    dim Rst as dao.recordset

    'rótulo RtlSigiloso
    set rst=currentdb.openrecordset("SELECT count(sigilo) AS demandas_em_sigilo FROM controle_demanda WHERE sigilo = TRUE;")
    if rst.recordcount>0 then rst.movelast : rst.movefirst
    RtlSigiloso.caption= "Demandas de caráter sigiloso: " & rst.recordcount

    'rótulo RtlEncerrado
    set rst=currentdb.openrecordset("SELECT COUNT(encerrado) AS encerradas FROM controle_demanda WHERE encerrado = TRUE;")
    if rst.recordcount>0 then rst.movelast : rst.movefirst
    RtlEncerrado.caption= "Demandas encerradas: " & rst.recordcount



    .................................................................................
    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
    avatar
    Convidado
    Convidado


    [Resolvido]Relatório com controles provenientes de duas consultas Empty Re: [Resolvido]Relatório com controles provenientes de duas consultas

    Mensagem  Convidado 26/8/2013, 17:22

    Obrigado Alexandre.
    Sua solução deve resolver com certeza, mas, está mostrando apenas 1 em ambos os rótulos. Eu não tenho domínio de uso dos recordsets, mas creio que esteja relacionado a algo com os mesmos.
    Poderia verificar se os códigos necessitam de alguma correção e me informar?
    Usei até um MsgBox mas continuou na mesma.

    Obrigado novamente.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Relatório com controles provenientes de duas consultas Empty Re: [Resolvido]Relatório com controles provenientes de duas consultas

    Mensagem  Alexandre Neves 26/8/2013, 17:24

    E eu não tenho tabela para experimentar.
    O SQL do recordset pode-o testar colocando numa consulta e abrir a consulta


    .................................................................................
    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
    avatar
    Convidado
    Convidado


    [Resolvido]Relatório com controles provenientes de duas consultas Empty Re: [Resolvido]Relatório com controles provenientes de duas consultas

    Mensagem  Convidado 26/8/2013, 17:29

    Tentarei comentar o código para ver se estou entendendo realmente o que está fazendo.


    'rótulo RtlSigiloso
    'Setando a consulta no Recordset, do banco de dados corrente.
    set rst=currentdb.openrecordset("SELECT count(sigilo) AS demandas_em_sigilo FROM controle_demanda WHERE sigilo = TRUE;")

    'Se houver mais de 0 registro então vá para final e vá para o primeiro registro.
    if rst.recordcount>0 then rst.movelast : rst.movefirst

    'A propriedade Caption do RtlSigiloso recebe a contagem dos registros.
    RtlSigiloso.caption= "Demandas de caráter sigiloso: " & rst.recordcount

    Minha pergunta foi: Por acaso você não estaria movendo o rst para o primeiro registro?

    Os rótulos estão sendo exibidos da seguinte forma;

    Demandas de caráter sigiloso: 1, sendo que, se eu rodar a query no banco há 15 ocorrências. Ou seja 15. Pode verificar se seu código apresenta algum erro?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Relatório com controles provenientes de duas consultas Empty Re: [Resolvido]Relatório com controles provenientes de duas consultas

    Mensagem  Alexandre Neves 26/8/2013, 17:48

    Está certo nos comentários do código
    Não tenho como experimentar sem dados.
    O recordset assume o recordcount sem falhas se percorrer todos os registos. Bastava movê-lo para o último, mas é usual fazer assim porque, caso se precise de trabalhar com ele para outras finalidades ele está no primeiro registo.


    .................................................................................
    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
    avatar
    Convidado
    Convidado


    [Resolvido]Relatório com controles provenientes de duas consultas Empty Re: [Resolvido]Relatório com controles provenientes de duas consultas

    Mensagem  Convidado 27/8/2013, 13:48

    Obrigado, resolveu. Nosso erro era dar count 2 vezes, se a sentença SQL já tinha o count, então retornava uma linha. Removi o count da sentença e o Recordset contou a quantidade de linhas retornadas.
    Procurei alguma outra função, mas, dai entendi a lógica e preferi remover o Count da sentença e o código ficou assim:

    Set Rst = CurrentDb.OpenRecordset("SELECT * FROM controle_demanda WHERE sigilo = TRUE;")
    'If Rst.RecordCount > 0 Then Rst.MoveFirst: Rst.MoveLast
    Rst.MoveLast
    RtlSigiloso.Caption = "Sigilosas: " & Rst.RecordCount
    MsgBox (Rst.RecordCount)


    Conteúdo patrocinado


    [Resolvido]Relatório com controles provenientes de duas consultas Empty Re: [Resolvido]Relatório com controles provenientes de duas consultas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 01:14