Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/07/2011, 15h36   #1
Candidat au titre de Membre du Club
 
Benoit
Inscription : janvier 2006
Messages : 36
Détails du profil
Informations personnelles :
Nom : Benoit

Informations forums :
Inscription : janvier 2006
Messages : 36
Points : 11
Points : 11
Par défaut Champ indépendant calculé dans formulaire tabulaire

Bonjour,

Ma question est simple, mais la manière de l'expliquer peut-être pas...

Le contexte...

J'utilise une BDD Access de suivi médical. Je voudrais créer un onglet spécifique au suivi particulier des femmes enceintes (et oui, ça arrive !). Il s'agit de valeurs mesurées chez tout le monde, mais dont le suivi doit être plus précis en cas de grossesse.

Prenons l'exemple de la tension artérielle (TA)

Je dispose d'une première table "T_Suivi", qui concerne tous les patients :
IdBilan
IdPatient
DateTA
ValeurTA


J'ai une autre table "T_Grossesses" dédiée aux grossesses, qui en simplifiant contient ces champs :
IdGrossesse
IdPatient
DateDebut
DateTerme
(= accouchement prévu)

Et une requête "R_Valeurs_Grossesse" qui me reprend dans ma première table toutes les valeurs de TA de ma patiente au cours de la grossesse, comprises entre les dates DateDebut et DateTerme, et qui contient donc les infos suivantes :
IdPatient
DateTA
ValeurTA


Dans mon formulaire principal, j'ai un onglet spécifique "Grossesse", qui contient les infos de la table T_Grossesse, et un sous-formulaire basé sur la requête R_Valeurs_Grossesse, me permettant d'avoir tout sous les yeux sur une même page.

Jusque là, tout va bien...


Mon "problème"...

Je voudrais dans chaque ligne de mon sous-formulaire calculer la différence entre DateDebut et DateTA (exprimée en semaines), et la faire figurer dans un champ indépendant (je n'ai pas besoin de stocker cette valeur dans une table) nommé "DateSA", ce qui me permettra de "positionner" chaque mesure de TA par rapport à l'avancée de la grossesse.

Mais la valeur calculée est la même dans toutes les lignes (qui correspond à la différence entre la date de la première ligne et la date de début de grossesse), au lieu de faire la différence entre la date de chaque ligne respective et le début de grossesse.
Si je clique sur une autre ligne que la première, le calcul va être basé sur cette ligne et c'est cette nouvelle valeur qui va s'afficher dans toutes les lignes.

Voici le code que j'ai utilisé :
Code :
1
2
3
4
Private Sub Form_Current()
    ' Calcul des dates en semaines d'aménorrhée à l'activation du sous-formulaire
    DateSA.Value = round(([DateTA].Value - [Forms]![F_Accueil]![F_Suivi_Grossesse].[Form]![DateDebut].Value)/7,0)
End Sub
Je cherche, je cherche, mais je sèche... Quelqu'un saurait m'indiquer où se trouve mon erreur ?... Du fait que j'utilise un champ indépendant qui a le même nom (et donc même valeur ?) pour toutes les lignes ?

Merci

BM
BMATH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 17h19   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Il faut que tu déplace le calcul dans la source de données de ton formulaire.

Si tu prends une table en entrée, il faudra faire une requête.

En mode continu, pour tout ce qui est calculé, il n'existe en réalité qu'une seule instance qui est répétée autant de fois qu'il y a d'enregistrement :-(.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 22h53   #3
Candidat au titre de Membre du Club
 
Benoit
Inscription : janvier 2006
Messages : 36
Détails du profil
Informations personnelles :
Nom : Benoit

Informations forums :
Inscription : janvier 2006
Messages : 36
Points : 11
Points : 11
Merci, la réponse est très claire !

Comme la source est une requête, ça ne devrait pas être compliqué

Merci !

BM
BMATH est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h21.


 
 
 
 
Partenaires

Hébergement Web