j'ai un formulaire principal (FP) et 1 sous-formulaire, que j'appelle SF1.
SF1 peut recevoir 3 formulaires différents Fa, Fb, Fc (1 seul à la fois ) selon une condition déterminée dans le code de FP que j'appelle CC.
structure de la liaison de l'ensemble :
SF1 : source objet : vide; ce qui rend le sous-formulaire indépendant
champ père:champ fils : Référence (même nom de champ)
Fa,Fb,Fc : record source :constitué d'une requête portant sur une table propre à chaque Fa,Fb,Fc donc 3 tables Ta,Tb,Tc, même type de clé
Principe : ouverture de FP, traitement, détermination de la condition et selon le résultat : sourceobjet de SF1 = "Fa" ou "Fb" ou "Fc"
Le contenu champ Référence est determiné dans FP et correspond à une clé de Ta, Tb,ou Tc via le champfils de SF1
Donc toute cette articulation fonctionne très bien sous access 2000
j'ai migré vers access 2007, et là surprise, ça ne fonctionne pas du tout;
l'appel de Fa, Fb, ou Fc se fait mais j'ai ensuite systématiquement un message pour référence non définie; après quelques vérifs, je me suis rendu compte que le recordset attaché au formulaire n'était pas incrémenté; pour contourner, je crée un recordset indépendant, qui est correct; mais impossible de l'associer au recordset du formulaire, quelque soit l'instruction utilisée, exemple : set me.recordset = rst (mon recordset indep.);
par ontre les références sous-formulaire et formulaire sont correctes: vérifié par msgbox me.name; forms!FP!SF1.form
En fait c'est comme si le me.recordset était "gelé"; j'ai fait des tas d'essais, jeu d'instructions différent, paramètrage Fa,Fb,Fc différents; j'ai toujours le même message dès que je veux accéder au recordset (propriété, champ ...)
Et comme dans ces cas là, après trop d'acharnement on ne voit plus l'arbre qui cache la forêt; je m'en remet à vos pupilles toutes claires et je vous appelle à l'aide
Merci
Partager