VBA Access Extraction de données Multicritère
Bonjour,
Je m'initie à l'utilisation de macros dans Microsoft Access pour créer une base de données dynamique répertoriant différentes sociétés ainsi que leurs produits. L'objectif est de pouvoir effectuer rapidement des comparaisons (benchmark) et extraire des données en fonction de plusieurs critères.
Après avoir effectué des recherches, j'ai décidé de créer plusieurs requêtes qui traitent séparément chaque critère de recherche. À présent, je souhaite intégrer ces requêtes dans une macro de manière à les activer lorsque les critères sont renseignés et à afficher en temps réel les résultats (la macro doit s'exécuter lorsque les critères changent).
J'ai travaillé avec la fonction "IF Not IsNull" suivie de "Then". Cependant, en tant que débutant dans ce domaine, je rencontre des difficultés pour identifier l'erreur éventuelle dans mon code.
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
| Dim sourceName As String
' Initialisez la source de sous-formulaire avec la requête de base
sourceName = "Query.P_Product_Critère_Base"
' Obtenez les valeurs des 11 critères
Dim critereKV40 As Variant
Dim critereEAL As Variant
Dim critereApplication As Variant
Dim critereCompany As Variant
Dim critereHX1 As Variant
Dim critereLusC As Variant
Dim critereBenefit As Variant
Dim critereBio As Variant
Dim critereFP As Variant
Dim critereVI As Variant
Dim critereChem As Variant
critereKV40 = Forms![__F_Navigation]![NavigationSubform].[Form]![P_KV40_Research]
critereEAL = Forms![__F_Navigation]![NavigationSubform].[Form]![P_EAL_Research]
critereApplication = Forms![__F_Navigation]![NavigationSubform].[Form]![P_Application_Research]
critereCompany = Forms![__F_Navigation]![NavigationSubform].[Form]![P_Comp_Research]
critereHX1 = Forms![__F_Navigation]![NavigationSubform].[Form]![P_HX1_Research]
critereLusC = Forms![__F_Navigation]![NavigationSubform].[Form]![P_LusC_Research]
critereBenefit = Forms![__F_Navigation]![NavigationSubform].[Form]![P_Benefit_Research]
critereBio = Forms![__F_Navigation]![NavigationSubform].[Form]![P_Bio_Research]
critereFP = Forms![__F_Navigation]![NavigationSubform].[Form]![P_FP_Research]
critereVI = Forms![__F_Navigation]![NavigationSubform].[Form]![P_VI_Research]
critereChem = Forms![__F_Navigation]![NavigationSubform].[Form]![P_Chem_Research]
' Ajoutez des critères actifs à la source de sous-formulaire
If Not IsNull(critereKV40) Then
sourceName = sourceName & " + Query.R_Product_Critère_KV40"
End If
If Not IsNull(critereEAL) Then
sourceName = sourceName & " + Query.R_Product_Critère_EAL"
End If
If Not IsNull(critereApplication) Then
sourceName = sourceName & " + Query.R_Product_Critère_Application"
End If
If Not IsNull(critereCompany) Then
sourceName = sourceName & " + Query.R_Product_Critère_Company"
End If
If Not IsNull(critereHX1) Then
sourceName = sourceName & " + Query.R_Product_Critère_HX1"
End If
If Not IsNull(critereLusC) Then
sourceName = sourceName & " + Query.R_Product_Critère_LusC"
End If
If Not IsNull(critereBenefit) Then
sourceName = sourceName & " + Query.R_Product_Critère_Benefit"
End If
If Not IsNull(critereBio) Then
sourceName = sourceName & " + Query.R_Product_Critère_Bio"
End If
If Not IsNull(critereFP) Then
sourceName = sourceName & " + Query.R_Product_Critère_FP"
End If
If Not IsNull(critereVI) Then
sourceName = sourceName & " + Query.R_Product_Critère_VI"
End If
If Not IsNull(critereChem) Then
sourceName = sourceName & " + Query.R_Product_Critère_Chem"
End If
Set sousform_Extraction = Forms![__F_Navigation]![NavigationSubform].[Form]![sousform_Extraction]
sousform_Extraction.SourceObject = sourceName
sousform_Extraction.Form.Requery
End Sub |
Je suis donc preneur de tout conseil et corrections éventuelles.
Je suis à votre disposition si vous avez besoin de plus de détails.
Merci encore de votre aide,