Bienvenue! Identification Créer un nouveau profil

Recherche avancée

[AC10] Problème de référence aux colonnes d'une liste déroulante

19/03/17 10:34
Salut à toutes et tous,

J'ai actuellement une grosse difficulté avec Access 2010, résurgence d'un problème vécu en 2011, relatif au référencement des colonnes d'une liste déroulante (en court : cbo, combo-box).

J'ai mon programme JOURNAL développé depuis 2008 et en constante amélioration où il s'agit de noter mes activités quotidiennes, en indiquant pour chacune ses Domaines (p.e. Access, Logiciels perso, Bricolages etc) et ses Personnes liées. Après une révision de la base Programme pour passer du format .MDB en .ACCDB, j'ai e.a. ajouté des filtres et séquences de tri. Et cela fonctionnait impeccablement avec les bons affichages. Puis j'ai voulu ajouter plusieurs champs liés à afficher dans le cas des Domaines

J'ai les tables Note, Domaine, Personne et celles de liens de plusieurs à plusieurs : Note_Et_Domaine et Note_Et_Personne ; j'ai en outre une table Groupe, chaque Domaine appartenant à un Groupe. J'ai donc un formulaire Notes avec 2 sous-formulaires pour choisir par Cbo l'un le(s) Domaine(s) et l'autre les Personne(s). Pour le Domaine, j'ai 4 champs "dérivés" pour indiquer son Groupe avec son numéro et le statut Obsolète (ou non) du Domaine et du Groupe. J'utilise ce type de formule pour la Source du Contrôle :
Langage: Visual Basic
=Nz(cboDomaine.Column(5)) ' ou son équivalent =Nz([cboDomaine].[Column](5))
correspondant à la 6ème colonne dans la requête de ma cbo. La fonction standard VBA Nz(MyVar[, valifNull]) sert pour le cas où aucun Domaine ou Personne n'est associé à la Note affichée et où la cbo est vide avec des colonnes de valeur Null. J'ai un mécanisme similaire pour indiquer l'adresse de la Personne.

Donc, développement et tests terminés, je connecte une base Data réelle (1.450 Notes au lieu de la Test avec 5 Notes) et bardaf, c'est l'embardée : les champs liés au Domaine affichent "#Nom ?" tandis que celui de la Personne affiche correctement l'adresse de la Personne. Les syntaxes et toutes les propriétés des champs sont identiques. Supprimer la fonction NZ() ne change rien.

Sur un site voisin, un aimable formumeur m'avait conseillé en 2011 d'utiliser l'évènement AfterUpdate de la cbo pour injecter les valeurs avec :
Langage: Visual Basic
Me.ctlDomN° = Nz(Me.cboDomaine.Column(5))
Mais cette proposition n'est intéressante qu'après le choix fait dans la Cbo et pas pour une cbo qui affiche l'enregistrement courant. Par contre j'ai mis le code suivant dans l'évènement OnCurrent de mon sous-formulaire :
Langage: Visual Basic
Option Compare Database Private Sub Form_Current() Me.ctlDomN° = Nz(Me.cboDomaine.Column(5)) Me.ctlChkObsDom = Nz(Me.cboDomaine.Column(6)) Me.ctlGroupeN° = Nz(Me.cboDomaine.Column(7)) Me.ctlGroupe = Nz(Me.cboDomaine.Column(2)) Me.ctlChkObsGrp = Nz(Me.cboDomaine.Column(8)) End Sub

Et cela fonctionne ... sauf que le sous-formulaire étant en continu, les contrôles dérivés pour le 2ème Domaine (Logiciels perso) et l'éventuel nouveau Domaine à ajouter, affichent les valeurs dérivées du 1er Domaine (Access). Résultat qui fausse l'affichage de ces informations. Par contre c'est toujours OK pour le champ dérivé pour la personne dans l'autres sous-formulaire. Et tout cela me fait ch... choir les cheveux de constater que jusqu'à nouvel ordre, Access 2010 ne permet que de temps à autre et de manière imprévisible d'afficher dans un contrôle les informations provenant d'autres colonnes de la Cbo affichée. Je devrais me sentir heureux d'être retraité car comment expliquer à un client ou boss que MS produit des logiciels imprévisibles au comportement variant d'un instant à l'autre.

Si vous avez un tuyau, merci d'avance.

PS : en plus, je perds au moins une vingtaine de secondes lorsqu'en mode Création, je sélectionne le sous-formulaire puis un de ses contrôles avant d'avoir la main pour voir sa Fenêtre de Propriétés. Je me demande ce qu'Access turbine pendant ce temps. Essayerait-il de dégoûter ses utilisateurs et développeurs ?

Office 2010 Pro, Win10 Pro 64 bits ; Access et VBA depuis Access 2 (après Cobol, Fortran, ISAM etc) ; encore actif même si retraité ; seul utilisateur de mon PC.
SujetAuteurEnvoyé le

[AC10] Problème de référence aux colonnes d'une liste déroulante

Pacha3219/03/17 10:34

[AC10] Re: Problème de référence aux colonnes d'une liste déroulante

Pacha3219/03/17 16:39

[AC10] Re: Problème de référence aux colonnes d'une liste déroulante

DenisS20/03/17 09:22

[AC10] Re: Problème de référence aux colonnes d'une liste déroulante

Pacha3220/03/17 11:06

[AC10] Re: Problème de référence aux colonnes d'une liste déroulante

DenisS20/03/17 12:10

Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter