[resolvido] Dúvidas em Banco de Dados: Consultas e relatórios

Moderador: Avelino Sampaio

Rodrigo2166
Mensagens: 2
Registrado em: 13 Nov 2017, 11:25

[resolvido] Dúvidas em Banco de Dados: Consultas e relatórios

Mensagempor Rodrigo2166 » 13 Nov 2017, 11:39

Bom dia Pessoal,
Sou voluntário e vice-coordenador de uma ONG que presta trabalhos voluntários em instituições que abrigam e cuidam de crianças ou idosos carentes.
Nesse contexto, não sou nenhum expert em access, mas com boa vontade, elaborei um Banco de dados no Access (Utilizo o office 2013, no Windows 7), a fim de manter o cadastro de todos os voluntários e controlar a frequência participação e, através desses dados de controle, motivar os voluntários através de incentivos a participarem mais.

O banco de dados funciona da seguinte forma:

O voluntário é considerado “Ativo” quando sua “frequência de participação” é maior ou igual a 85% OU se foi na última ação realizada; “Inativo”, se for abaixo de 50% ou ausência em 4 ações seguidas; “Parcial” se a "frequência de participação” estiver entre 50 e 85%.

A frequência de participação, é calculada a partir da razão entre a “Presença” e “ações realizadas após ingresso”;

Presença é calculada através da fórmula: DContar("*";"[Participação]";" [Número Voluntário] =" & [Voluntários]![Número Voluntário])

Os campos “ações realizadas após ingresso”, “Participação”, “última ação participada” e “Frequência de participação”, estão presentes na tabela “Voluntários”, porém só são alimentados no formulário “Voluntários” através de fórmulas.

Daí pergunto: Como fazer com que esses valores calculados possam constar na tabela também? Pois as mesmas fórmulas usadas no formulário, dão erro quando, em modo design, tento colocá-las em campo “calculado” da tabela. As fórmulas são:

Ações realizadas após ingresso:
=DContar("*";"[Ações]";" [Data]>=" & "[Voluntários]![1ª Ação]")

Participação:
=SeImed([Frequência de Participação]>=0,85 Ou DÚltimo("[Nº Ação]";"[Participação]";" [Número Voluntário] =" & [Número Voluntário])=DÚltimo("[Nº Ação]";"[Ações]");"Ativo";SeImed([Frequência de Participação]<0,5 Ou DÚltimo("[Nº Ação]";"[Participação]";" [Número Voluntário] =" & [Número Voluntário])

última ação participada:
=DÚltimo("[Nº Ação]";"[Participação]";" [Número Voluntário] =" & [Número Voluntário])

Frequência de participação:
=DContar("*";"[Participação]";" [Número Voluntário] =" & [Número Voluntário])/Dcontar("*";"[Ações]")

Depois eu preciso fazer uma consulta, do total de voluntários que tenho, contabilizando separadamente os “ativos, “inativo” ou “parcial”, bem como a frequência de participação, em porcentagem, que servirá de base para o relatório. Porém, como a participação do voluntário é atribuída automaticamente através de fórmula e não está alimentada em tabela, não consigo fazer a contagem no final do relatório por “ativo”, “inativo” ou “parcial”, somente o total.

As fórmulas que utilizo são:

DContar("*";"[Consulta Voluntários]";"[Participação]='Ativo'")
DContar("*";"[Consulta Voluntários]";"[Participação]='Inativo'")
DContar("*";"[Consulta Voluntários]";"[Participação]='Parcial'")


Total: =Contar(*)

Quando eu simulei esses campos alimentados na tabela, a contagem sai perfeita no relatório, mas uma vez que são calculados através de fórmula, não consigo, dá "#erro".

Alguém saberia me elucidar isto, por favor?

Encaminho o banco em anexo, para quem puder me ajudar a resolver esses problemas. Desde já, muito obrigado pela atenção.

Abraço!
Você deve estar registrado e autenticado para ter acesso ao arquivo anexo.

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
Avelino Sampaio
Mensagens: 2160
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Dúvidas em Banco de Dados: Consultas e relatórios

Mensagempor Avelino Sampaio » 15 Nov 2017, 10:56

Rodrigo,

vc já tem o campo Participação no próprio relatório, portanto não precisa pegar este valor lá na consulta. Veja como fica o cálculo para os três campos no rodapé

ativo :::> =Soma(Abs([Participação]='Ativo'))
Inativos :::> =Soma(Abs([Participação]='Inativo'))
Parcial :::> =Soma(Abs([Participação]='Parcial'))

Mais detalhes de como Contar, somar e numerar relatórios, neste meu artigo:

http://www.usandoaccess.com.br/tutoriais/somar-contar-e-numerar-em-relatorios.asp?id=1#inicio

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Rodrigo2166
Mensagens: 2
Registrado em: 13 Nov 2017, 11:25

Re: Dúvidas em Banco de Dados: Consultas e relatórios

Mensagempor Rodrigo2166 » 27 Nov 2017, 13:05

Bom dia Avelino,
Muito obrigado!
Sua solução deu certo, além de contar bem mais rápido no relatório, pois da forma como estava antes, travava o banco algumas vezes ou o valor demorava demais a aparecer e eu tinha que clicar no campo do relatório para visualizar o valor.

Outra coisa que não entendo o porquê de não dar certo, é para inserir foto de cada voluntário no formulário Voluntários.
Se eu acrescento na tabela um campo de anexo, a fim de inserir fotos, dá erro em todos os campos calculados em "Histórico do Voluntário", aparecendo #erro ou #tipo.
Saberia me dizer o porque?

Como tentativa de solucionar isso, já que tenho uma consulta que me gera esses campos do histórico, como frequência de participação, participação e outros, fiz um novo formulário teste a partir da tabela voluntários e da consulta dos campos que eu desejo, frequência de participação, participação etc.
O problema que dá outros erros, que não consigo relacioná-los a nada, como o campo "data de entrada na ação" e outros, ficam imutáveis, não consigo apagar e nem inserir novos dados, bem como, não consigo inserir novo registro a partir do botão de controle superior.

Como proceder nesses casos, saberia me dizer?

Desde já, muito obrigado novamente Avelino pelo apoio dado.

Avatar do usuário
Avelino Sampaio
Mensagens: 2160
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Dúvidas em Banco de Dados: Consultas e relatórios

Mensagempor Avelino Sampaio » 29 Nov 2017, 10:32

Rodrigo,

sugiro que armazene as imagens em pasta local e guarde na tabela apenas o nome da imagem. Utilize o o comando Picture para vincular a imagem ao quadro. Tem exemplos do uso do picture, no link abaixo:

http://www.redeaccess.com.br/search.php?keywords=picture

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.



Voltar para “Consultas”

Quem está online

Usuários neste fórum: Bing [Bot] e 2 visitantes