• 0
Sign in to follow this  
Synk

Operações Com O Subformulario

Question

Boa Tarde,

Estou a construir uma base de dados acerca de uma turma, e estou a obter um problema ao tentar calcular a média das notas de um aluno.

Construí um formulário que contém dentro dele um subformulário a partir do qual posso inserir as notas de um certo aluno a uma certa disciplina. Tenho também uma caixa de texto que deverá mostrar a média total das notas do aluno após clicar num botao para actualizar a média!

Qual é a melhor maneira para aceder ao subformulario e actualizar a media? Eu estava a tentar fazer isso através de uma consulta que contem a média das notas, mas apos inserir as notas no subformulario a consulta so é actualizada se eu fechar o formulário e o voltar a abrir...

Ou então como poderei ler os registos todos das notas que estao no subformulario e fazer um somatorio para calcular a media?

Desde já obrigado wink.gif

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Bom acredito que no subform você pode criar um campo não acoplado (vamos chama-lo de SomaNota) para somar o total das notas, em Origem do controle coloque assim:

-Caso o subform seja um formulário continuo

=nz(soma([seuCampo]);0)

-Caso seja um sub com campos distintos tipo (Nota1,Nota2,Nota3,Nota4)

=nz([nota1]+[nota2]+[nota3]+[nota];0)

Isso faz com que o Campo SomaNota atualize-se automaticamente pelos dados previstos, assim no seu campo Media você só irá precisar fazer um procedimento "Ao Receber Foco" assim

me.media.value=seuSubForm!SomaNota/X

onde X é a quantidade notas para a media (4 por exemplo)

espero que isso ajude vc cool.gif

Share this post


Link to post
Share on other sites
  • 0

Obrigado pela ajuda!!

Também consegui resolver o problema de outra maneira.

Vi este comando noutro post e usei na minha bd e resultou

Me.MediaSub.Requery

Isto actualiza o Formulário das médias então posso fazer logo as contas directas cool.gif

Já agora podem-me dizer como bloquear uma consulta? para ninguém poder alterar os seus dados?

Share this post


Link to post
Share on other sites
  • 0

você pode pode definir como não as propriedades "Pode Alterar", "Pode Incluir", "Pode Excluir" do form onde você irá mostrar os resultados da consulta isso irá impedir que façam alterações nos dados exibidos cool.gif

Share this post


Link to post
Share on other sites
  • 0

Sim tem razão!!! Mas a minha consulta é mesmo aberta como consulta e não a inseri dentro de um form!!! A sua maneira esta correcta mas tive que adoptar outra.

Como uso um botao de comando para aceder à consulta alterei o seguinte codigo:

stDocName = "Consulta Notas por Aluno"

DoCmd.OpenQuery stDocName, acNormal, acEdit

Alterei o "acEdit" para "acReadOnly" assim não deixa alterar os dados das consultas biggrin.gif

Obrigado

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this