|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() Inscription : avril 2008 Messages : 11 ![]() |
Bonsoir,
Ok le titre est un peu étrange mais voici mon probleme. J'extrais un recordset de données via un SQL un peu complexe (incluant un UNION de 2 SELECT sur 2 tables différentes et du coup si je l'utilise directement ce recordset comme datasource pour mon subform et les controles de ce subform ensuite je ne peux rien updater car message d'erreur "this recordset is not updatable". Mon idée est dont d'essayer de tout gérer en code et donc d'utiliser des controles unbound + un bouton save. J'espère que mes controles unbound pourront etre updatés par l'utilisateur et derrière je gererai les fonctionnalités d'update dans la base. Probleme c'est que je ne sais pas comment passer les valeurs de mes champs de mon rowset aux differents control de mon subform. en gros if faudrait que tant que mon recordset n'est pas processé je fasse un truc du genre Code :
1) où est ce que je dois mettre ce code (quel évènement afin que quand ma form principale soit ouverte mon subform soit rempli exactement de la même façon que si j'avait utilisé des control avec datasource au lieu de control unbound) 2) j'ai vu du code faisant un For ctl In myForm et accede ainsi aux controles mais ça ne semble pas faire exactement ce que je veux. J'ai tenté ça dans le form_load de mon subform ... Code :
Je veux dire si la dernière ligne de mon rs a comme valeur rs![Flag] = true alors la case à cocher de chacune de mes lignes de mon subform est cochée et inversement si elle vaut false alors les cases sont décochées. Si je clique sur la box maintenant je n'ai plus ce probleme d'erreur "this recordset is not updatable" mais toutes mes lignes sont changé en même temps je veux dire si j'ai cliqué sur la case à cocher de la ligne 4 alors toutes les cases deviennent automatiquement cochée (idem si je décoche ligne 5, etc etc.... Bref il me manque une info là. Le probleme provient sans doute du fait que mon subform est en mode continuous mais je ne veux/peux pas le changer (ca serait trop simple ^^). J'ai aussi tenté de contourner le probleme en essayant d'afficher une ligne de couleur differente au lieu d'utiliser une checkbox unbound mais sans success, soit je colorie toute les lignes soit rien (suivant qu'une ligne au moins match mon critere ou pas) Mon controle myColor n'est pas unbound Code :
Bref comment etre en subform continuous mais pouvoir atteindre les controles d'une ligne specifique pour en changer la couleur, la visibilité, etc ? Help ;-) |
||||||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
Une requete Union n'est pas updatable. Tu pourras monter toutes les usines à gaz de la terre que ça ne marchera pas. La solution est d'embarquer dans tes Select le numero unique de l'enregistrement et le nom de la table pour l'identifier. Ensuite tu pourras créer une requete d'insert ou Update pour le mettre à jour ou encore utiliser un recordset DAO ou ADO en ouvrant la dite table sur le dénommé enregistrement. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
Copyright © 2000-2012 - www.developpez.com