Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/06/2011, 16h36   #1
Invité de passage
 
Inscription : mars 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 25
Points : 3
Points : 3
Par défaut Zone de liste limitée

Bonjour,
J'ai un petit problème sur Access, peut-être pourriez-vous m'aider.
Ma zone de liste est basée sur une requête, jusque là tout va bien.
Seulement lorsque la requête renvoit beaucoup d'enregistrements, la zone de liste ne les affiche pas tous.
Pour donner un ordre d'idée, la zone n'affiche que les 300 premiers enregistrements environ (le nombre est variable donc c'est encore + étonnant).
Donc ma question :
- Une zone de liste est-elle limitée?
- Si oui, y-a-t-il une propriété / code qui permette de modifier cette limite?
- Si oui, quelle est-elle / il?

Merci de votre aide.
miron_fds est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 19h02   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Il n'y a pas apparement de limite (j'ai fait par erreur des listes de 7000 enrs, un enfer !) mais en effet, passé un certain nombre d'enrs Access 'pédale' pour fournir les données et semble s'arréter dès que la liste est 'ouverte' par l'utilisateur.

Si ta liste est basée sur des données qui ne changent pas tu pourrais peut-être utiliser une table comme source plutôt qu'une requête.

Sinon par code il faudrait 'morceler' ta source pour n'afficher, par exemple, que les enrs commençant par une lettre choisie.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 19h54   #3
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 616
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 616
Points : 30 961
Points : 30 961
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Il me semble que l'on a déjà parlé de cela, mais je ne sais plus où. La limite viendrait du nombre de caractères, et donc non lié au nombre d'enregistrements.

Personnellement j'ai toujours trouvé aberrant d'avoir une liste avec autant d'enregistrements, ergonomiquement c'est loin d'être le pied.

Cependant, une astuce qui devrait t'aider à dépasser cette limite serait de remplacer ta zone de liste par un sous-formulaire en mode feuille de données.
Visuellement tu peux avoir quelque chose de similaire, et tu mets la requête qui alimente ta liste pour alimenter le sous-formulaire.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 20h22   #4
Invité de passage
 
Inscription : mars 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 25
Points : 3
Points : 3
Tout d'abord Merci à tous les 2 pour vos réponses.

Moi aussi je trouve aberrant de mettre autant d'enregistrements dans une liste mais en fait j'essaye de prévoir les futures remarques de certains collègues voulant ne selectionner les données qu'avec la souris.

Je vais essayer vos 2 méthodes qui me semblent efficaces et je vous referez des retours concernant cela leurs rendements.

Encore merci
miron_fds est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 16h19   #5
Invité de passage
 
Inscription : mars 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 25
Points : 3
Points : 3
Je viens de remarquer que le problème ne se pose pas sur une base Access similaire enregistrée au format .mdb . Ma base est quand à elle au format .accdb. Je me demande si le problème pouvait venir de là? Qu'en pensez vous?
miron_fds est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 18h43   #6
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Aucune idée si le format de la BD peut influer sur cela.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 19h04   #7
Membre régulier
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 81
Points : 81
Bonjour,

J'ai déjà eu des problèmes similaires avec des données en ACC2000 et mon frontal en ACC2003.

Le problème a été résolu lorsque j'ai converti mes données en ACC2003.

A voir ! c'est peut être une piste.
JeanYves70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 11h36   #8
Invité de passage
 
Inscription : mars 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 25
Points : 3
Points : 3
Problème : je n'arrive pas à convertir ma base 2007 dans une version antérieure car j'ai apparemment des fonctions qui ne peuvent être utilisé dans une base antérieure.

Il y a-t-il une solution à ce problème ?
miron_fds est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 15h25   #9
Invité de passage
 
Inscription : mars 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 25
Points : 3
Points : 3
Voici un bout de mon code peut être cela vous aidera à solutionner mon probleme:

Private Sub AJOUTER_Click()
Dim resultatReq As Recordset 'Résultat Requête
Dim TYPE_ECHELLE As String 'champs qui renseigne le type de l'enregistrement (exp: REG, DEP ...)

Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT IRIS as CODE,LIBELIRIS as LIBEL FROM IRIS WHERE LIBELDEP='" & DEPARTEMENT & "' OR DEP='" & DEPARTEMENT & "'")


'Ajout des résultats dans la liste
resultatReq.MoveFirst

While Not resultatReq.EOF
SELECTION.AddItem resultatReq!CODE & ";" & resultatReq!LIBEL & ";" & TYPE_ECHELLE
resultatReq.MoveNext
Wend

MsgBox SELECTION.ListCount

Le msgbox me retourne la valeur 1066 alors que je devrais avoir 1341 enregistrements

Mon code comporte-t-il un problème a votre avis ?
miron_fds est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 17h46   #10
Invité de passage
 
Inscription : mars 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 25
Points : 3
Points : 3
Apparemment la zone de liste n'est pas limitée je viens de testé en plaçant la requête dans contenu et celle ci contient bien toutes mes données c'est donc bien un problème dans mon code.

Merci pour toutes les réponses que vous m'avez apporté.

miron_fds est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 19h56   #11
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Pourquoi ne pas faire tout le travail au niveau de la source de données ?

Tu pourrais créer une requête qui calcule tous les champs dont tu as besoin puis t'en servir comme source de ta liste.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 10h15   #12
Invité de passage
 
Inscription : mars 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 25
Points : 3
Points : 3
Je vais travailler dans ton sens pour voir si cela convient merci pour tes conseils
miron_fds est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 14h49   #13
Invité de passage
 
Inscription : mars 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 25
Points : 3
Points : 3
En fait je ne peux pas me cantonner à une seule requête car l'utilisateur doit avoir le choix dans les données qu'il veut mettre dans la zone de liste :

Pour être précis je suis en train de reprendre le code VBA d'une base de données recensant plusieurs info INSEE concernant des communes iris région, dept etc.

L'utilisateur du formulaire à le choix de choisir à quel niveau il veut ses données : cf (PJ)
Par exemple je désire renvoyer dans ma listbox tous les IRIS (en cochant la case IRIS) du département « Nord ».

Voici le code associé à ce formulaire:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
Option Explicit
 
Dim REGION As String
Dim DEPARTEMENT As String
Dim CANTON As String
Dim EPCI As String
Dim AGGLO As String
Dim ARR As String
Dim COMMUNE As String
Dim IRIS As String
 
 
 
'*******************************************************
' Procédure appelée lors d'un double clic sur SELECTION
'*******************************************************
Private Sub AJOUTER_DblClick(Cancel As Integer)
    AJOUTER
End Sub
 
 
 
 
'*******************************************************
' Procédure appelée lors d'un clic sur le bouton "ajouter"
' Cette procédure va, suivant le type de l'échelle sélectionner et
' effectuer une requete pour rassembler les informations
' sur cette dernière
'
' Une erreur est levée en cas de violation des contraintes d'utilisation
' (exemple : pluseurs cases cochées en même temps)
'*******************************************************
 
Private Sub AJOUTER_Click()
    Dim resultatReq As Recordset 'Résultat Requête
    Dim TYPE_ECHELLE As String 'champs qui renseigne le type de l'enregistrement (exp: REG, DEP ...)
    Dim szSQL As String
 
     'Vérifier conditions
    If VERIFIER_CONDITIONS = False Then
        MsgBox ("Veuillez vérifier que vous avez sélectionné ou coché une seule echelle")
        Exit Sub
    End If
 
    'récupérer les valeurs des LISTE_
    VALEUR_LISTES
 
    If coche_R Then 'Ajouter toutes les regions
        TYPE_ECHELLE = "REG"
        If REGION <> "" Or DEPARTEMENT <> "" Or CANTON <> "" Or EPCI <> "" Or AGGLO <> "" Or ARR <> "" Or COMMUNE <> "" Or IRIS <> "" Then
            MsgBox ("Impossible d'executer")
            Exit Sub
        End If
        Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT REG as CODE,LIBELREG as LIBEL FROM COMMUNE")
 
    ElseIf coche_D Then
         TYPE_ECHELLE = "DEP"
        If DEPARTEMENT <> "" Or CANTON <> "" Or EPCI <> "" Or AGGLO <> "" Or ARR <> "" Or COMMUNE <> "" Or IRIS <> "" Then
            MsgBox ("Impossible d'executer")
            Exit Sub
        End If
        If REGION <> "" Then 'si une région est selectionnée
            Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT DEP as CODE,LIBELDEP as LIBEL FROM COMMUNE WHERE LIBELREG='" & REGION & "'")
        Else 'ajouter toutes les dep
            Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT DEP as CODE,LIBELDEP as LIBEL FROM COMMUNE")
        End If
    ElseIf COCHE_C Then
 
    TYPE_ECHELLE = "CANTON"
            If CANTON <> "" Or EPCI <> "" Or AGGLO <> "" Or ARR <> "" Or COMMUNE <> "" Or IRIS <> "" Then
                MsgBox ("Impossible d'executer")
            Exit Sub
            End If
            If DEPARTEMENT <> "" Then 'Ajouter tous les cantons de DEPARTEMENT
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CV as CODE,LIBELCV as LIBEL FROM COMMUNE WHERE LIBELDEP='" & DEPARTEMENT & "' OR DEP='" & DEPARTEMENT & "'")
            ElseIf REGION <> "" Then 'Ajouter tous les cantons de REGION
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CV as CODE,LIBELCV as LIBEL FROM COMMUNE WHERE LIBELREG='" & REGION & "'")
            Else 'DEPARTEMENT et REGION sont vides, alors on ajoute TOUS les cantons
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CV as CODE,LIBELCV as LIBEL FROM COMMUNE")
            End If
    ElseIf COCHE_EPCI Then
 
    TYPE_ECHELLE = "EPCI"
            If EPCI <> "" Or AGGLO <> "" Or ARR <> "" Or COMMUNE <> "" Or IRIS <> "" Then
                MsgBox ("Impossible d'executer")
            Exit Sub
            End If
            If CANTON <> "" Then 'Ajouter tous les EPCI de Canton
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT EPCI as CODE,LIBELEPCI as LIBEL FROM COMMUNE WHERE LIBELCV='" & CANTON & "' OR CV='" & CANTON & "'")
            ElseIf DEPARTEMENT <> "" Then 'Ajouter tous les EPCI de DEPARTEMENT
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT EPCI as CODE,LIBELEPCI as LIBEL FROM COMMUNE WHERE LIBELDEP='" & DEPARTEMENT & "' OR DEP='" & DEPARTEMENT & "'")
            ElseIf REGION <> "" Then 'Ajouter tous les EPCI de REGION
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT EPCI as CODE,LIBELEPCI as LIBEL FROM COMMUNE WHERE LIBELREG='" & REGION & "'")
            Else 'CANTON,DEPARTEMENT,REGION sont vides, alors on ajoute TOUS les EPCI
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT EPCI as CODE,LIBELEPCI as LIBEL FROM COMMUNE")
            End If
 
    ElseIf COCHE_AG Then
 
    TYPE_ECHELLE = "AGGLO"
            If AGGLO <> "" Or ARR <> "" Or COMMUNE <> "" Or IRIS <> "" Then
                MsgBox ("Impossible d'executer")
            Exit Sub
            End If
            If EPCI <> "" Then 'Ajouter toutes les AGG de EPCI
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT UU1999 as CODE,LIBELUU1999 as LIBEL FROM COMMUNE WHERE LIBELEPCI='" & EPCI & "' OR EPCI='" & EPCI & "'")
            ElseIf CANTON <> "" Then 'Ajouter toutes les AGG de Canton
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT UU1999 as CODE,LIBELUU1999 as LIBEL FROM COMMUNE WHERE LIBELCV='" & CANTON & "' OR CV='" & CANTON & "'")
            ElseIf DEPARTEMENT <> "" Then 'Ajouter tous les AGG de DEPARTEMENT
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT UU1999 as CODE,LIBELUU1999 as LIBEL FROM COMMUNE WHERE LIBELDEP='" & DEPARTEMENT & "' OR DEP='" & DEPARTEMENT & "'")
            ElseIf REGION <> "" Then 'Ajouter toutes les AGG de REGION
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT UU1999 as CODE,LIBELUU1999 as LIBEL FROM COMMUNE WHERE LIBELREG='" & REGION & "'")
            Else 'EPCI,CANTON,DEPARTEMENT,REGION sont vides, alors on ajoute TOUTES les AGG
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT UU1999 as CODE,LIBELUU1999 as LIBEL FROM COMMUNE")
            End If
 
    ElseIf COCHE_AR Then
 
    TYPE_ECHELLE = "ARR"
           If REGION = "Provence-Alpes-Côte d'Azur" Or REGION = "93" Or REGION = "Rhône-Alpes" Or REGION = "83" Or REGION = "Ile-de-France" Or REGION = "11" Then
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM ARRONDISSEMENT WHERE LIBELREG='" & COMMUNE & "' OR REG='" & COMMUNE & "'")
           ElseIf DEPARTEMENT = "Bouche-du-Rhône" Or DEPARTEMENT = "13" Or DEPARTEMENT = "Rhône" Or DEPARTEMENT = "69" Or DEPARTEMENT = "Paris" Or DEPARTEMENT = "75" Then
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM ARRONDISSEMENT WHERE LIBELDEP='" & COMMUNE & "' OR DEP='" & COMMUNE & "'")
           ElseIf CANTON = "Marseille" Or CANTON = "1399" Or CANTON = "LYON" Or CANTON = "6999" Or CANTON = "Paris" Or CANTON = "7599" Then
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM ARRONDISSEMENT WHERE LIBELCV='" & ARR & "' OR LIBELCV='" & COMMUNE & "'")
           ElseIf ARR = "Marseille" Or ARR = "Lyon" Or ARR = "Paris" Then
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM ARRONDISSEMENT WHERE LIBELCV='" & ARR & "'")
           ElseIf AGGLO = "" And EPCI = "" And CANTON = "" And DEPARTEMENT = "" And REGION = "" And ARR = "" Then
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM ARRONDISSEMENT")
 
 
            '///////////////////////////////////////////////////////////////////////////////////////////////
            'SI ON CREE UNE NOUVEL ARRONDISSEMENT, IL FAUT ALORS AJOUTER UN "ELSE IF"
             '///////////////////////////////////////////////////////////////////////////////////////////////
 
             Else
                MsgBox ("Impossible d'executer")
            Exit Sub
            End If
 
    ElseIf COCHE_COM Then
 
 
 
    TYPE_ECHELLE = "COM"
 
            If COMMUNE <> "" Or IRIS <> "" Then
                MsgBox ("Impossible d'executer")
            Exit Sub
            End If
 
            If ARR <> "" Then 'Ajouter toutes les COM de ARR
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM ARRONDISSEMENT WHERE LIBGEO='" & ARR & "' OR CODEGEO='" & ARR & "'")
            ElseIf AGGLO <> "" Then 'Ajouter toutes les COM de AGG
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM COMMUNE WHERE LIBELUU1999='" & AGGLO & "' OR UU1999='" & AGGLO & "'")
            ElseIf EPCI <> "" Then 'Ajouter toutes les COM de EPCI
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM COMMUNE WHERE LIBELEPCI='" & EPCI & "' OR EPCI='" & EPCI & "'")
            ElseIf CANTON <> "" Then 'Ajouter toutes les COM de Canton
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM COMMUNE WHERE LIBELCV='" & CANTON & "' OR CV='" & CANTON & "'")
            ElseIf DEPARTEMENT <> "" Then 'Ajouter toutes les COM de DEPARTEMENT
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM COMMUNE WHERE LIBELDEP='" & DEPARTEMENT & "' OR DEP='" & DEPARTEMENT & "'")
            ElseIf REGION <> "" Then 'Ajouter toutes les COM de REGION
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM COMMUNE WHERE LIBELREG='" & REGION & "'")
            Else 'ARR,AGG,EPCI,CANTON,DEPARTEMENT,REGION sont vides, alors on ajoute TOUTES les COMMUNE
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM COMMUNE")
            End If
 
    ElseIf COCHE_IRIS Then
    TYPE_ECHELLE = "IRIS"
            If IRIS <> "" Then
                MsgBox ("Impossible d'executer")
            Exit Sub
            End If
            If COMMUNE <> "" Then 'Ajouter tous les IRIS de COM
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT IRIS as CODE,LIBELIRIS as LIBEL FROM IRIS WHERE LIBGEO='" & COMMUNE & "' OR CODGEO='" & COMMUNE & "'")
            ElseIf ARR <> "" Then 'Ajouter tous les IRIS de ARR
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT IRIS as CODE,LIBELIRIS as LIBEL FROM IRIS WHERE LIBGEO='" & ARR & "' OR CODGEO='" & ARR & "'")
            ElseIf AGGLO <> "" Then 'Ajouter tous les IRIS de AGG
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT IRIS as CODE,LIBELIRIS as LIBEL FROM COMMUNE WHERE LIBELUU1999='" & AGGLO & "' OR UU1999='" & AGGLO & "'")
            ElseIf EPCI <> "" Then 'Ajouter tous les IRIS de EPCI
                'Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT IRIS as CODE,LIBELIRIS as LIBEL FROM IRIS WHERE LIBELEPCI='" & EPCI & "' OR EPCI='" & EPCI & "'")
                MsgBox ("Vous ne pouvez pas faire de filtre à partir d'un EPCI")
            ElseIf CANTON <> "" Then 'Ajouter tous les IRIS de Canton
                'Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT IRIS as CODE,LIBELIRIS as LIBEL FROM IRIS WHERE LIBELCV='" & CANTON & "' OR CV='" & CANTON & "'")
                MsgBox ("Vous ne pouvez pas faire de filtre à partir d'un CANTON")
            ElseIf DEPARTEMENT <> "" Then 'Ajouter tous les IRIS de DEPARTEMENT
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT IRIS as CODE,LIBELIRIS as LIBEL FROM IRIS WHERE LIBELDEP='" & DEPARTEMENT & "' OR DEP='" & DEPARTEMENT & "'")
                 'szSQL = "SELECT IRIS as CODE,LIBELIRIS as LIBEL FROM IRIS WHERE LIBELDEP='" & DEPARTEMENT & "' OR DEP='" & DEPARTEMENT & "'"
            ElseIf REGION <> "" Then 'Ajouter tous les IRIS de REGION
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT IRIS as CODE,LIBELIRIS as LIBEL FROM IRIS WHERE LIBELREG='" & REGION & "'")
            Else 'COMMUNE,ARR,AGG,EPCI,CANTON,DEPARTEMENT,REGION sont vides, alors on ajoute TOUS les IRIS
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT IRIS as CODE,LIBELIRIS as LIBEL FROM IRIS")
            End If
 
 
    Else
        'Aucune case cochée
        'alors on recherche dans les champs LISTE_**
            If REGION <> "" Then 'ajouter la region souhaitée
            TYPE_ECHELLE = "REG"
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT REG as CODE,LIBELREG as LIBEL FROM COMMUNE WHERE LIBELREG='" & REGION & "'")
            ElseIf DEPARTEMENT <> "" Then 'ajouter le département souhaité
            TYPE_ECHELLE = "DEP"
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT DEP as CODE,LIBELDEP as LIBEL FROM COMMUNE WHERE LIBELDEP='" & DEPARTEMENT & "' OR DEP='" & DEPARTEMENT & "'")
            ElseIf CANTON <> "" Then 'ajouter le canton souhaité
            TYPE_ECHELLE = "CANTON"
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CV as CODE,LIBELCV as LIBEL FROM COMMUNE WHERE LIBELCV='" & CANTON & "' OR CV='" & CANTON & "'")
            ElseIf EPCI <> "" Then 'ajouter l'EPCI souhaité
            TYPE_ECHELLE = "EPCI"
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT EPCI as CODE,LIBELEPCI as LIBEL FROM COMMUNE WHERE LIBELEPCI='" & EPCI & "' OR EPCI='" & EPCI & "'")
            ElseIf AGGLO <> "" Then 'ajouter l'Agglo souhaitée
            TYPE_ECHELLE = "AGGLO"
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT UU1999 as CODE,LIBELUU1999 as LIBEL FROM COMMUNE WHERE LIBELUU1999='" & AGGLO & "' OR UU1999='" & AGGLO & "'")
            ElseIf ARR <> "" Then 'ajouter l'arr souhaitée
            TYPE_ECHELLE = "ARR"
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT CODGEO as CODE,LIBGEO as LIBEL FROM ARRONDISSEMENT WHERE LIBGEO='" & ARR & "' OR CODGEO='" & ARR & "'")
            ElseIf COMMUNE <> "" Then 'ajouter la commune souhaitée
            TYPE_ECHELLE = "COM"
                Set resultatReq = CurrentDb.OpenRecordset("SELECT CODGEO as CODE,LIBGEO as LIBEL FROM COMMUNE WHERE LIBGEO='" & COMMUNE & "' OR CODGEO='" & COMMUNE & "'")
            ElseIf IRIS <> "" Then
            TYPE_ECHELLE = "IRIS"
                Set resultatReq = CurrentDb.OpenRecordset("SELECT DISTINCT IRIS as CODE,LIBELIRIS as LIBEL FROM IRIS WHERE LIBELIRIS='" & IRIS & "' OR IRIS='" & IRIS & "'")
            End If
 
    End If
 
 
 
 
    'Ajout des résultats dans la liste
    resultatReq.MoveFirst
 
    While Not resultatReq.EOF
        SELECTION.AddItem resultatReq!CODE & ";" & resultatReq!LIBEL & ";" & TYPE_ECHELLE 'ajout de la région
        resultatReq.MoveNext
    Wend
 
        'SELECTION.RowSource = szSQL
        'SELECTION.Requery 'met à jour la liste
 
 
    VIDER_ECHELLES
    MsgBox SELECTION.ListCount
End Sub
Images attachées
Type de fichier : png Ex_BDD.PNG (41,2 Ko, 3 affichages)
miron_fds est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h56.


 
 
 
 
Partenaires

Hébergement Web