Bonjour,
Alors dans le titre de mon sujet tout parait simple mais je m'arrache les cheveux depuis un bon moment sur ce problème je vais essayer d'être bref et concis :
Je reprend un projet access qui contient possède sa base de donnée sur SQL-Server 2012 je passe donc via l'ODBC et j'ai un petit sub qui me permet de faire des requêtes passant par ce dernier que je peux nommer et définir cette requête en recordsource d'un formulaire jusque là tout va bien.
Mon soucis c'est que lorsque je veux installer cette base de donnée access sur un autre PC j'efface les requêtes linkée mais comme ces dernières ont déjà été définie en recordsource sur des formulaire j'obtiens naturellement un message d'erreur à l'ouverture m'indiquant que l'objet est inexistant.
Je cherche donc un moyen de remettre la recordsource des sous-formulaire à zéro lorsque j'ouvre mon formulaire principal en VBA sauf que si je le fais sur l'event Load c'est déjà trop tard le message d'erreur apparaît et à l’événement d'ouverture j'obtiens un message d'erreur comme quoi je fais référence à un sous formulaire qui n'existe pas donc j'imagine qu'il ne s'est pas encore chargé.
En désespoir de cause j'ai fait le code suivant sur le bouton de sortie du formulaire :
Sauf que cela ne fait rien je me suis dit que si je n'arrivais pas à atteindre la recordsource du sousform à l'ouverture la cleaner à la fermeture marcherait mais access m'ignore complètement et ne fait rien à la fermeture je réouvre en mode création et je constate que les recordsource sont toujours là.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim DocName As String DocName = "formulaire principal" Forms![formulaire principal]![sous formulaire].Form.RecordSource = "" DoCmd.Close acForm, DocName, acSaveYes
Partager