Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme avec modèle GrandLivre

6 réponses
Avatar
christinea12
Bonjour, j'ai commenc=E9 =E0 utiliser le mod=E8le GrandLivre d'Access
2003. Dans le formulaire Compte, le calcul du solde compte ne
fonctionne pas. A la place est indiqu=E9 # Nom ?. Comment puis-je
r=E9gler ce probl=E8me ? Merci pour votre aide.=20
Christine

6 réponses

Avatar
Argyronet
Bonjour,

L'erreur vient que tant qu'il n'y a pas d'enregistrements connexes, le #Nom
s'affiche comme s'il faisait référence à un champ inexistant... Le
comportement du RecordSetClone en tant qu'objet dans une formule n'est pas
une bonne solution ici.

Bon, la meilleure parade serait de traiter la valeur du solde via VBA et une
procédure événementielle car au fond, cette Base exemple n'est un simple
exemple et reste assez rudimentaire notamment en ce qui concerne la
vérification des saisies, la preuve, votre message.

Bon, il y a une solution temporaire capilotractée :
Dans le champ "Solde compte" posez cette formule.

=VraiFaux(IsError(VraiFaux(EstNull([Sous-formulaire
Comptes].Formulaire!Solde);0;[Sous-formulaire
Comptes].Formulaire!Solde));0;[Sous-formulaire Comptes].Formulaire!Solde)

Je ne suis pas chaud pour ce genre de paliatif mais ça fonctionne ainsi.
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour, j'ai commencé à utiliser le modèle GrandLivre d'Access
2003. Dans le formulaire Compte, le calcul du solde compte ne
fonctionne pas. A la place est indiqué # Nom ?. Comment puis-je
régler ce problème ? Merci pour votre aide.
Christine




Avatar
christinea12
Bonjour Argy et merci pour cette réponse rapide. Je débute avec
Access et je n'ai pas tout tout compris du début de votre réponse. Je
n'ai pas dû bien communiquer... Je me suis donc contentée de la
solution temporaire capilotractée... et même solde : #Nom ! Mais
peut-etre n'ai-je pas fait ce qu'il fallait. Pour confirmation, j'ai
ouvert les propriétés du champ concerné ("solde compte" dans le
formulaire "comptes") et remplacé dans la souce contrôle la formule
par celle que vous m'avez indiquée. C'est bien ça qu'il fallait faire
?

J'ai alors relu et relu vos deux premiers paragraphes...
"pas d'enregistrements connexes" : j'ai déjà fait des enregistrements
dans tous les formulaires.
"la meilleure parade serait de traiter la valeur du solde via VBA et
une
procédure événementielle " : les termes ne me sont plus inconnus
mais aucune idée de ce qu'il faut faire. Je suis prête à
apprendre...

Merci pour votre patience...

Christine
Avatar
Argyronet
Bien, il est anormal que la valeur d'erreur #Nom! persiste avec la nouvelle
formule car en fait la formule vérifie elle même qu'elle est une erreur et
que dans ce cas, elle affiche 0.
Les enregistrements connexes sont ceux présents dans la table "Transaction".
Le coté connexe est établi entre ces deux tables par le bais du champ
"RéfCompte".
Le problème est que le sous-formulaire "Sous-formulaire Comptes" est en
lecture seule dans le formulaire parent "Comptes". Vous êtes obligé de saisir
les données dans le formulaire "Transaction" à part, ce qui, ergonomiquement
parlant est nul...
Donc la formule initiale utilise l'objet RecordSetClone dans le but de
photographier à l'instant T le jeu d'enregistrements connexes correspondants.
L'objectif de la formule est simple de cumuler la somme des soldes. Or pour
ce faire, c'est un peu comme sous Excel, on inscrit une fonction Somme
quelque part (ici dans le pied de formulaire du sous-formulaire) et ensuite
on pique le résultat de ce champ dans le formulaire principal, ici dans le
champ "Solde compte".
Si vous regardez bien la formule initiale, elle contrôle que Transaction
contient bien des enregistrements connexes et en fait la somme le cas échéant
et la formule à taper est en fait :
[Sous-formulaire Comptes].Formulaire!Solde

Si vous ne laissez que cette seule formule et qu'il n'y pas
d'enregistrements, alors le #Erreur sera là....
Donc on peut simplifier la formule par :
=VraiFaux(IsError([Sous-formulaire
Comptes].Formulaire!Solde);0;[Sous-formulaire Comptes].Formulaire!Solde)

Pour le coté VBA on va attendre un peu...
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour Argy et merci pour cette réponse rapide. Je débute avec
Access et je n'ai pas tout tout compris du début de votre réponse. Je
n'ai pas dû bien communiquer... Je me suis donc contentée de la
solution temporaire capilotractée... et même solde : #Nom ! Mais
peut-etre n'ai-je pas fait ce qu'il fallait. Pour confirmation, j'ai
ouvert les propriétés du champ concerné ("solde compte" dans le
formulaire "comptes") et remplacé dans la souce contrôle la formule
par celle que vous m'avez indiquée. C'est bien ça qu'il fallait faire
?

J'ai alors relu et relu vos deux premiers paragraphes...
"pas d'enregistrements connexes" : j'ai déjà fait des enregistrements
dans tous les formulaires.
"la meilleure parade serait de traiter la valeur du solde via VBA et
une
procédure événementielle " : les termes ne me sont plus inconnus
mais aucune idée de ce qu'il faut faire. Je suis prête à
apprendre...

Merci pour votre patience...

Christine




Avatar
christinea12
Merci pour toutes ces explications, c'est bien clair maintenant... et
ça marche ! Enfin, la formule qui nécessite des enregistrements
connexes, l'autre non. Je comprends bien que pour un professionnel,
cette base de donnée est assez rudimentaire. Je vais me contenter de
ce qui marche pour l'instant... en espérant l'améliorer petit à
petit, au fil de mes besoins et apprentissages. J'ai réussi à faire
pas mal de choses à l'aide de bouquins pour débutants mais avec des
calculs, ça se complique... pour moi...

Merci encore pour l'aide.
Christine
Avatar
Argyronet
Si vous avez d'autres soucis, revenez nous voir...
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Merci pour toutes ces explications, c'est bien clair maintenant... et
ça marche ! Enfin, la formule qui nécessite des enregistrements
connexes, l'autre non. Je comprends bien que pour un professionnel,
cette base de donnée est assez rudimentaire. Je vais me contenter de
ce qui marche pour l'instant... en espérant l'améliorer petit à
petit, au fil de mes besoins et apprentissages. J'ai réussi à faire
pas mal de choses à l'aide de bouquins pour débutants mais avec des
calculs, ça se complique... pour moi...

Merci encore pour l'aide.
Christine




Avatar
christinea12
Je n'hésiterai pas. Merci.
Christine