IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

VBA Access Extraction de données Multicritère


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Octobre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Octobre 2023
    Messages : 2
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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,

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Tu ne peux pas additionner les sources de données comme tu l'as fait.
    Éventuellement tu peux faire une requête UNION.

    Quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sourceName = "select * from P_Product_Critère_Base"
     
    If Not IsNull(critereKV40) Then
            sourceName = sourceName & " UNION ALL select * from R_Product_Critère_KV40"
    End If
     
    If Not IsNull(critereEAL) Then
            sourceName = sourceName & " UNION ALL select * from R_Product_Critère_EAL"
    End If
     
    'Et ainsi de suite pour tes autres critères.
    Et si cela ne correspond pas à ce que tu veux, tu peux regarder ici https://access.developpez.com/cours/...#formrecherche où le sujet des formulaires de recherche a pas mal été couvert. Il y en a pour tous les goûts.

    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.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Octobre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Octobre 2023
    Messages : 2
    Par défaut
    Bonjour,

    Merci de ta réponse.

    Je vais continuer mes recherches.

    Merci

Discussions similaires

  1. [VBA ACCESS] Importation de données DBF->Access
    Par mulanzia2003 dans le forum VBA Access
    Réponses: 9
    Dernier message: 01/11/2015, 15h33
  2. [VBA Excel] Extraction de données fichier txt vers Excel et mise en forme
    Par newcodeur dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/05/2008, 11h45
  3. [VBA ACCESS] Extraction caractère champ
    Par mulanzia2003 dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/07/2007, 11h04
  4. [VBA-E] Extraction de données et format
    Par Jusomi31 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/06/2007, 11h19
  5. [VBA Excel] Extraction de données
    Par tpv72 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/09/2005, 21h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo