Access97, requêtes et liste de choix

Fermé
MoiNico - 18 avril 2012 à 11:19
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 - 20 avril 2012 à 22:35
Bonjour,

Je cherche à créer actuellement un système permettant de simplifier la prise de messages téléphoniques pour la société pour laquelle je travaille. Le but étant de permettre aux personnes prenant un appel de disposer d'un formulaire simple pour prendre un maximum d'informations en un minimum de temps et d'un simple clic transmettre un e-mail aux personnes concernées par l'appel.
Là où je recontre un problème, c'est au niveau des listes de choix :

Je souhaite voir apparaître dans mon formulaire une liste de choix concernant la région administrative, et qu'une deuxième liste de choix n'affiche que les départements faisant partie de la région choisie.

N'ayant plus utilisé Access depuis plusieurs années, je bloque complètement sur cet élément. Pouvez-vous m'indiquer la marche à suivre ? Structure des tables, liens entre les tables, requêtes.

Pour le reste, tout est prêt, il ne me manque plus que ça.

Par avance merci,

Nicolas


2 réponses

OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
19 avril 2012 à 21:23
Bonjour,
je suppose que vous avez déjà créé vos tables Regions et Departements.
Pour retrouver les départements liés à une région il faudra evidemment que l'identifiant de la région s'y trouve ... Je suppose que c'est le cas et que donc il existe un relation 1 à plusieurs entre région et département.
Je vais appeler les contrôles cboRegions pour la liste des régions et cboDepartements pour la liste des départements.
Il faudra réagir à l'évènement On_Click de votre liste de région :

Private Sub cboRegions_Click()
    'Récupérer l'identifiant de la région choisie :
    Dim PKRegion as Long

    PKRegion = cboRegions.Column(0)

    'Mettre à jour la liste déroulante des départements
    Dim strSQL as String
    strSQL = "SELECT IDDepartement, Departement"
    strSQL = strSQL & " FROM Departements "
    strSQL = strSQL & " WHERE IDRegion = " & Cstr(PKRegion)

    Me.cboDepartements.ROWSOURCE = strSQL
    Me.cboDepartements.Requery
    
End Sub


Voilà,




1
Merci pour cette réponse, mais ça ne fonctionne pas.
Je pense avoir compris ce que fait exactement ce script, mais je me suis peut-être trompé dans les modifications des noms de tables et de champs. Quand je clique sur ma liste de régions ca dit "erreur d'execution : 13" / "type incompatible". Je passe en mode débogage et ca me surligne en jaune la ligne "PKRegion = cboRegions.Column(0)"
Que faire ?
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
20 avril 2012 à 22:35
Je vois. Le problème provient de la valeur de la colonne (0) de votre contrôle, c'est dû à un incompatibilité de type.
Cette liste déroulante est-elle bien basée sur une requête ou une liste de valeur ?
Si la source des données de votre liste de région est une requête, mettez dans la source des données :

SELECT IDRegion, Region FROM Regions


Pas de SELECT * ...

Définissez le nombre de colonnes sur deux.
Mettez un point d'arrêt sur la même ligne et vous devriez avoir la valeur identifiant de manière unique votre région en colonne 0.

0