[Base] mon Sous-Formulaire ne s'affiche pas

Bonjour
Voila plusieurs jour que je galère sur ce problème. Tous les forums que j’ai consulté ne répondent pas à mon problème. Je joint ma base exemple.
Procédure de test pour le formulaire fTresor
Saisir le journal de banque
choisir une date quelconque >> un numéro d’écriture est généré (avec un sql Max+1)
Choisir un compte
entrer un montant au débit
appuyer sur Enregistrer
Normalement l’écriture devrait s’afficher dans le table_grid ! Mais non
malgré un subform.reload en fin de macro Formulaires/FormTresor/Save_Ecriture
Autre problème mais qui fera l’objet d’un autre topic : si on saisie un montant avec des décimales mon instruction sql se plante au motif “conversion invalide de string”
Pour l’instant j’aimerais vraiment comprendre pourquoi la table grid ne s’affiche pas. (sauf si on clique dessus)
Merci pour votre aide.

Bonjour
Je reprend ce topic.
J’ai préparé une nouvelle base moins “fouilli” (enfin je l’espère) pour vous faire comprendre mon problème. Malgré toutes mes recherches (Forums, livres de B.Marcelly …) je n’arrive pas à comprendre pour ce sous-formulaire ne s’affiche pas quand mon formulaire principal est en “moveToInsertRow”
Dans la base que je joint, il s’agit simplement de saisir des lignes produit pour une commande ou facture; le sous formulaire devant simplement afficher ces lignes. tout ce passe bien quand on saisi une ligne, elle s’affiche bien dans le sous-formulaire, mais dès que l’on demande une nouvelle ligne le sous formulaire s’efface (c’est ce qui me gêne) même si je lui applique un .reload.
Je vous souhaite à tous de bonnes fêtes.
Merci pour votre aide
basetest.odb (18.8 KB)

Bonjour @reginacoco

Pardon mais il y a beaucoup de problèmes dans cette base, à commencer par ton modèle relationnel, source des autres ennuis. On ne doit pas saisir les produits & quantités commandés dans la table Commande. On doit créer une table dédiée pour cela, qui sera la source du sous-formulaire.

Pour ce type de gestion aucune macro ne devrait être nécessaire. En particulier pour mettre à jour la liaison (que tu fais par un filtre alors qu’elle devrait être fondée sur les champs communs).

Mon conseil serait de t’inspirer de ce tutoriel que j’avais réalisé pour OpenOffice. Il est ancien mais toujours d’actualité sur les principes.

Cordialement

Merci Pierre-Yves pour ta réponse “immédiate”. :grinning:
Oui oui je suis d’accord avec toi bien sûr pour le modèle relationnel.
Je m’exprime mal en réalité ma tables “Commande” pour l’exemple ne contient que les Lignes commandes. Je pense que je me plante sur le fait que mon sous-formulaire-grid est positionné en sous-formulaire du formulaire “détail de la ligne”. Il faut peut-être faire l’inverse ! Je vais d’abord lire ton tuto qui devrait me donner en effet une solution.
Merci encore.
Passes de bonnes fêtes

Bonjour,
J’ai bien étudié le tuto de Pierre-Yves, super !
Mais je n’ai pas trouvé de solution pour mon problème. Je joint une nouvelle base avec un formulaire “DetailCommande” qui fonctionne comme je le souhaite mis à part l’absence d’affichage du sous formulaire (liste des lignes d’une même commande) qui s’efface au moment de saisir une nouvelle ligne (bouton nouvelle ligne). Je n’arrive pas à comprendre pourquoi dans ce mode “new record” il m’est impossible d’afficher le sous formulaire.
Merci pour votre aide.
basetest.odb (29.5 KB)

Désolé mais je ne vois pas grande différence entre tes bases exemples sur le problème de fond : pour être un peu “cru” tu fais pour moi une usine à gaz.

Je ne pourrais être plus détaillé que dans le tutoriel déjà indiqué. Je me limiterais donc à cet aspect

  • Ton formulaire et ton sous-formulaire sont fondés sur la même source de données (ce qui ne se fait pas en principe).
  • Pour que le lien se fasse entre un formulaire et un sous-formulaire il faut définir les champs “maitre/esclave” de ce dernier. Ceci se fait en sélectionnant le sous-formulaire, puis dans l’onglet Données des propriétés (il peut être nécessaire d’élargir le dialogue pour accéder au bouton .

Merci PYS de ta réponse.
Je ne pensais pas vraiment avoir fait une ‘usine à gaz’. Le fait de pouvoir laisser affiché le sous formulaire permet à l’utilisateur de “savoir ou il en est” pendant la saisie.
Même en gérant les champs “maitre/esclave” la situation est identique. J’avais pensé passer par une listbox mais… non ça le fait pas :frowning_face:
Bon je suis un peu déçu, s’il faut abandonner … abandonnons :rage:
Merci encore
Je vais passer aux rapports pour me changer les idées. J’espère que ça ira mieux. :smiley:

La complexité à laquelle je fais référence est l’usage de macros.

Même en gérant les champs “maitre/esclave” la situation est identique

Lorsque le formulaire “principal” est en mode ajout un sous-formulaire ne peut rien afficher avant enregistrement : on ne sait pas encore quelles données afficher.

Le fait de pouvoir laisser affiché le sous formulaire permet à l’utilisateur de “savoir ou il en est” pendant la saisie.

Je partage l’idée de permettre à l’utilisateur de “savoir où il en est”. Dans cette optique je déconseille l’ouverture du formulaire en mode ajout qui ne permet pas de revenir sur les enrgistrements précédents.

Je crois avoir trouvé la solution.
Il suffisait de “délier” les 2 formulaires.
c’est exactement ce que je cherchais.
A bientôt
basetest_corrigé.odb (33.2 KB)