UTILISATION DE LISTE POUR CRITERE DE RECHERCHE DANS FORMULAIRE
13 réponses
Marc
Bonjour
J'essayes de batir un formulaire avec 6 listes qui me servent a définir les
enr dans un formulaire suite a une recharche et de l'aide de R.SENEQUE j'ai
trouvé ce code que je duplique autant de fois que j'ai de listes si j'ai
tout compris....
petit soucis parfois le code bloque ici : For Each varItm1 In
Ctl1.ItemsSelected en me mettant "bloc sans with" ???! aie pb & de plus pour
ne pas obliger les personnes quant elle veuelnt tous les enr d'une liste
j'ai mis "*" dans chaque liste en début et la ça marche pas pour aide la
requete ressemble a cela :
SELECT RESULTAT PAR AXES.* FROM [RESULTAT PAR AXES] WHERE
(((CompareList([Rubrique]))=True) AND ((CompareList1([AXES]))=True));
avec une liste contenant des rubriques & l'autre des axes et un bouton MAJ
avec le code suivant :
If (Not PrepareList(Me.Name, Me.Liste1.Name)) Or (Not
PrepareList1(Me.Name, Me.Liste2.Name)) Then
MsgBox "impossible de lancer la requête"
Else
Me.DONNEES.Requery
End If
Option Compare Database
Option Explicit
Dim Frm As Form
Dim Ctl As Control
Dim varItm As Variant
Dim Frm1 As Form
Dim Ctl1 As Control
Dim varItm1 As Variant
Public Function PrepareList(FormName As String, _
ControlName As String) As Boolean
On Error GoTo Err_PrepareList
Set Frm = Forms(FormName)
Set Ctl = Frm(ControlName)
If Ctl.ItemsSelected.Count = 0 Then GoTo Err_PrepareList
PrepareList = True
Exit Function
Err_PrepareList:
PrepareList = False
End Function
Public Function CompareList(ParameterValue As Variant) As Boolean
For Each varItm In Ctl.ItemsSelected
If CStr(ParameterValue) = Ctl.ItemData(varItm) Then
CompareList = True
Exit Function
End If
Next varItm
CompareList = False
End Function
******** DUPLICATION*********
Public Function PrepareList1(FormName As String, _
ControlName As String) As Boolean
On Error GoTo Err_PrepareList1
Set Frm1 = Forms(FormName)
Set Ctl1 = Frm(ControlName)
If Ctl1.ItemsSelected.Count = 0 Then GoTo Err_PrepareList1
PrepareList1 = True
Exit Function
Err_PrepareList1:
PrepareList1 = False
End Function
Public Function CompareList1(ParameterValue1 As Variant) As Boolean
For Each varItm1 In Ctl1.ItemsSelected
If CStr(ParameterValue1) = Ctl1.ItemData(varItm1) Then
CompareList1 = True
Exit Function
End If
Next varItm1
CompareList1 = False
End Function
je recapitule pourquoi svp ça bloque et mets "bloc sans with" ?! et comme
lui faire comprendre dans ma liste que "*" et comme tous , en mettant ceci
dans la requete "comme comparelist([rubrique])" ?
| mais dis moi ce systeme auquel j'ai pensé ne prends en compte qu'une valeur | par liste non ?
Vu que l'exemple est donné pour une combobox (liste déroulante) on prend bien une valeur. Pour des listbox (zone de liste) à sélection multiple, il faut boucler sur les valeurs sélectionnées.
| mais dis moi ce systeme auquel j'ai pensé ne prends en compte qu'une valeur
| par liste non ?
Vu que l'exemple est donné pour une combobox (liste déroulante) on prend
bien une valeur. Pour des listbox (zone de liste) à sélection multiple, il faut
boucler sur les valeurs sélectionnées.
| mais dis moi ce systeme auquel j'ai pensé ne prends en compte qu'une valeur | par liste non ?
Vu que l'exemple est donné pour une combobox (liste déroulante) on prend bien une valeur. Pour des listbox (zone de liste) à sélection multiple, il faut boucler sur les valeurs sélectionnées.