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 :

Programme VBA trouvant une valeur répondant à plusieurs conditions ET/OU (non résolu par requête SQL) [Toutes versions]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut Programme VBA trouvant une valeur répondant à plusieurs conditions ET/OU (non résolu par requête SQL)
    Bonsoir à tous les contributeurs de ce forum,
    Cette discussion fait suite à une problématique qui a été partiellement résolue à l'aide d'une requete SQL et de la persévérance de 'F-Leb'.
    Cependant, une nouvelle "couche" de condition a rendu le traitement du problème impossible via une simple requete SQL.
    Pour résumé, je dispose de 2 fichiers : une table CLIENTS et une table ELIGIBILITE.
    La table CLIENTS contient le nom de plusieurs clients (national) et un ensemble de conditions (x3) qui les caractérise.
    La table ELIGIBILITE contient les différents points d'éligibilité par région et les conditions auxquelles il faut répondre pour y appartenir. Cependant, une dernière condition, appelée RELATION ET/OU, précise si les 3 conditions doivent s'accumulées ou pas.
    Le but est de faire une jointure entre ces 2 tables sur les 3 conditions puis de voir à quelles conditions les clients peuvent légitimement prétendre.
    Un exemple (fichier Excel) est joint à cette discussion et permet de mieux comprendre la solution recherchée (onglet 'résultats attendus') et la difficulté posée par la relation ET/OU (champ 'commentaire').

    J'avoue que la fonction HAVING COUNT (*) avait permis de faire avancer les choses en requete SQL, mais la relation ET/OU a tout chamboulé (désolé F-leb).

    Merci pour votre aide et vos lumières car là je bloque ..

    Cdlt,
    David
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Hello
    comme ton problème est compliqué, il me faut plus d'explications:
    - pourquoi as tu plusieurs lignes pour décrire les conditions d'un client?
    - idem pour les critères d'éligibilité
    - comment interpréter les ET et les OU
    En fait, il faut de temps en temps revenir au tout début de la problématique, indépendamment de ce qu'on a déjà réalisé.
    Pistes:
    - tables intermédiaires et requêtes, voire requêtes UNION
    - programmation pure et dure de comparaison entre recordset

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Citation Envoyé par Simplifi Voir le message
    - pourquoi as tu plusieurs lignes pour décrire les conditions d'un client?
    - idem pour les critères d'éligibilité
    ...
    En fait, il faut de temps en temps revenir au tout début de la problématique, indépendamment de ce qu'on a déjà réalisé.
    Effectivement, je pense à un problème de conception...Il y a sûrement un meilleur moyen pour modéliser les données et simplifier le traitement de l'information.

    Citation Envoyé par Simplifi Voir le message
    - comment interpréter les ET et les OU
    ça par contre c'est expliqué dans le fichier Excel

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    2 réponses !!!!! Ouuuuufff je voyais un zéro réponse depuis dimanche soir et je me disais que c'était pas bon signe
    Bon effectivement cela ne change rien à la problématique mais je suis heureux d'apprendre que certaines âmes généreuses se penche sur "mon cas"
    En fait, pour répondre à vos questions, il s'agit d'une "situation héritée" d'une logiciel existant (SAP pour ne pas le nommer). Mon exemple était bien entendu une simplification de la problématique.
    Je suis en train d'analyser les problématiques de séparation des taches dans l'ERP SAP. Grace à l'extraction des bonnes tables et aux conseils des membres de ce foum je suis capable:
    - de connaitre les autorisations par utilisateur,
    - d'intégrer le référentiel des autorisations incompatibles SAP dans ma base ACCESS.
    ... ll me "manque" juste à faire le rapprochement entre ces 2 fichiers pour savoir si les utilisateurs ont, ou non, des autorisations incompatibles.

    Pour essayer de faire simple (ca va etre DUR pour du SAP), et faire le rapprochement avec mon exemple simplifié des clients :
    - ma table 'utilisateur' (équivalent à ma table client dans l'exemple précédent) dispose de 3 niveaux d'autorisations fidèles à la logique SAP (les 3 conditions) :OBJET, CHAMP, VALEUR DU CHAMP

    - mon référentiel (ma table éligibilité) dicte les couples des 3 niveaux d'autorisation nécessaire pour avoir un accès effectif à cette transaction.

    Et là, j'apprends qu'il existe une colonne supplémentaire dans ce référentiel qui indique si ces couples d'objets d'autorisation doivent s'accumulées ou non .. et là c'est le drame sur mes précédentes requêtes.

    Je joins à cet message l'explication de la relation ET/OU et un exemple qui colle à mon problème.
    MAIS pour répondre à ta question : c'est CONCEPTUEL et propre à SAP ... je ne pourrai malheureusement pas changé cette logique et cette approche.

    David
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Salut,
    J'ai réussi à écrire une fonction qui renvoie les zones éligibiles pour un client sous la forme : "SUD:01;NORD:02;NORD:03"
    Copie ce code dans un nouveau module que tu nommeras comme tu en as envie :
    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    Option Compare Database
    Option Explicit
     
    Public Function zonesEligibles(pClient As String) As Variant
        ' Ceci est la fonction qui renvoit la liste des zones éligibles pour un client
        ' La valeur retournée est de cette forme : "SUD:01;NORD:03"
        Dim strSQL As String, strZone As String
        Dim rstZonesProbables As DAO.Recordset
     
        ' On récupère les zones susceptibles d'être éligibles
        strSQL = "SELECT DISTINCT Secteur, Eligibilité " & _
                 "FROM Clients INNER JOIN Eligibilité " & _
                 "ON (Clients.Condition3 = Eligibilité.Condition3) " & _
                    "AND (Clients.Condition2 = Eligibilité.Condition2) " & _
                    "AND (Clients.Condition1 = Eligibilité.Condition1) " & _
                 "WHERE Client='" & pClient & "';"
        Set rstZonesProbables = CurrentDb.OpenRecordset(strSQL)
     
        ' Pour chacune de ces zones,
        While Not rstZonesProbables.EOF
            ' On réunit les champs Secteur et éligibilité séparés par ":"
            strZone = rstZonesProbables(0) & ":" & rstZonesProbables(1)
            ' On vérifie si le client est éligible. Si c'est le cas, on concatène les zones séparées par des point-virgules
            If eligibiliteZone(pClient, strZone) Then
                zonesEligibles = zonesEligibles & ";" & strZone
            End If
            rstZonesProbables.MoveNext
        Wend
     
        ' On retire le premier point-virgule
        If Len(zonesEligibles) <> 0 Then zonesEligibles = Right(zonesEligibles, Len(zonesEligibles) - 1)
    End Function
     
    Private Function eligibiliteZone(pClient As String, pZone As String) As Boolean
        Dim strSQL As String, strSecteur As String, strEligibilite As String
        Dim rstConditionsClient As DAO.Recordset, rstRegroupementConditions As DAO.Recordset
        Dim verif As Boolean
     
        ' Initialisation
        verif = False
        ' On sépare les champs "Secteur" et "éligibilité"
        strSecteur = Left(pZone, InStr(pZone, ":") - 1)
        strEligibilite = Right(pZone, Len(pZone) - InStr(pZone, ":"))
     
        ' On récupère les conditions du client
        strSQL = "SELECT Condition1, Condition2, Condition3, Client FROM Clients WHERE Client = '" & pClient & "';"
        Set rstConditionsClient = CurrentDb.OpenRecordset(strSQL)
     
        ' On récupère les conditions de la zone regroupées sur les 2 premières conditions(les "ET" d'abord, les "OU" à la fin)
        strSQL = "SELECT DISTINCT Secteur, Eligibilité, Condition1, Condition2, Relation " & _
                 "FROM Eligibilité " & _
                 "WHERE Secteur='" & strSecteur & "' AND Eligibilité='" & strEligibilite & "' " & _
                 "ORDER BY Relation, Condition1, Condition2;"
        Set rstRegroupementConditions = CurrentDb.OpenRecordset(strSQL)
     
        Do Until rstRegroupementConditions.EOF
            verif = correspondCondition(rstConditionsClient, rstRegroupementConditions.Fields)
            If Not verif Then Exit Do
            rstRegroupementConditions.MoveNext
        Loop
     
        eligibiliteZone = verif
    End Function
     
    Private Function correspondCondition(rstClient As DAO.Recordset, fldsConditions As DAO.Fields) As Boolean
        Dim fld As DAO.Field
        Dim strSQL As String
        Dim rstConditionsCompletes As DAO.Recordset
        Dim test As Boolean
     
        strSQL = "SELECT DISTINCT Condition1, Condition2, Condition3, Relation " & _
                 "FROM Eligibilité " & _
                 "WHERE Secteur='" & fldsConditions(0).Value & "' " & _
                        "AND Eligibilité='" & fldsConditions(1).Value & "' " & _
                        "AND Condition1='" & fldsConditions(2).Value & "' " & _
                        "AND Condition2='" & fldsConditions(3).Value & "' " & _
                        "AND Relation='" & fldsConditions(4).Value & "' " & _
                 "ORDER BY Relation, Condition1, Condition2,Condition3;"
        Set rstConditionsCompletes = CurrentDb.OpenRecordset(strSQL)
     
        Do Until rstConditionsCompletes.EOF
            test = False
            rstClient.MoveFirst
            Do Until rstClient.EOF
                If rstClient(0) = rstConditionsCompletes(0) And rstClient(1) = rstConditionsCompletes(1) And rstClient(2) = rstConditionsCompletes(2) Then
                    test = True
                    Exit Do
                End If
                rstClient.MoveNext
            Loop
            If (test And rstConditionsCompletes(3) = "OU") Or (Not test And rstConditionsCompletes(3) = "ET") Then Exit Do
            rstConditionsCompletes.MoveNext
        Loop
        rstClient.MoveFirst
        If rstClient(3) = "C3" And fldsConditions(0).Value = "SUD" And fldsConditions(1).Value = "02" Then Debug.Print test
        correspondCondition = test
    End Function
    Ensuite, tu peux tester avec cette requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Client, zonesEligibles([Client]) AS Eligibilite FROM ClientsDistincts;
    Avec ClientsDistincts :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT Client FROM Clients;

    Pour tester et développer cette petite fonction, j'ai utilisé les données de ton premier post.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Je te joins la base de test qui m'a servie à faire ça

    EDIT : Mise à jour du code et de la pièce jointe le 28/03/2013 à 15h22
    Fichiers attachés Fichiers attachés

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    Je suis impressionné ... Mille mercis.
    Hummm (du coup j'ai honte) ... j'ai copié et adapté ton code dans un module spécifique de ma base.
    Et maintenant ... je l'éxécute comment ?

    Désolé pour mon ignorance.

    David

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    C'est bon Paidge j'ai compris comment activer les fonctions à travers ton exemple

    Je te tiens au courant après adaptation à ma BDD.

    Merci encore pour le temps consacré.

    David

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    Cela semble fonctionner ... ca "mouline" pendant 5 minutes ...puis j'ai un message d'erreur disant
    Erreur d'éxécution '94'
    Utilisation incorrecte de Null

    Le débogage sélectionne alors le code suivant
    pTableau(colonne, x) = rst(colonne - 1)


    ?????

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    J'ai remplacé les valeurs nulles par une valeur discriminante (dans les 2 tables ).

    Ca tourne .. ca tourne ...

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Ok dagada75. Tu avais des valeurs nulles sur certains champs de tes tables ? Tiens-moi au courant

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    Salut Paidge,

    Comme promis je te tiens informé.

    Tout d'abord Merci encore pour ton travail, c'est vraiment généreux de ta part de me consacrer une partie de ton temps (libre).

    J'ai appliqué ton programme à ma base et j'ai effectivement éliminé les champs vides.
    Il y a un cas de figure qui n'arrive pas à être traité ... mais on y est presque.
    J'ai réussi à le produire dans ta base test à l'aide des modifications suivantes.
    Clients
    Client Condition1 Condition2 Condition3
    C1 01 02 03
    C1 X Y Z
    C1 A C 01

    Eligibilité
    Secteur Eligibilité Condition1 Condition2 Condition3 Relation
    SUD 01 A C 03 OU
    SUD 01 A C 02 OU
    SUD 01 01 02 03 ET
    SUD 01 X Y Z OU

    Résultats:
    C1; SUD:01 apparait alors qu'il ne devrait pas.

    Sais-tu d'où cela peut venir ??
    Car malgré le fait que C1 dispose de la condition3 "03", celle-ci ne s'applique que dans le cadre des condition1 "01" et condition2 "02".
    Le système ne peut pas déduire que puisque que C1 a la condition1 "A", la condition2 "C" et quelque part la condition3 "03" alors C1 répond favorablement à l'éligibilité SUD 01 - A - C - 03.

    On est d'accord ?

    David

  13. #13
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    D'après tes premières explication, pour moi c'est normal qu'il réponde que C1 est éligible à SUD:01. En effet, je lis les conditions d'éligiblité de cette manière :

    Pour être éligible à SUD:01, il faut remplir ces conditions :
    (condition1 = 01, condition2 = 02, condition3 = 03 ) ET
    (
    (condition1 = A, condition2 = C, condition1 = 03 ) OU
    (condition1 = A, condition2 = C, condition1 = 02 ) OU
    (condition1 = X, condition2 = Y, condition1 = Z )
    )

    Comme C1 a :
    (condition1 = 01, condition2 = 02, condition3 = 03 ) ET
    (condition1 = X, condition2 = Y, condition1 = Z )

    Le programme considère qu'il est éligible Faudrait, dans ce cas, que tu m'expliques plus en détail le fonctionnement des ET et des OU.

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    Bonsoir Paidge,

    Effectivement je n'ai pas été assez clair dans mes explications, et c'est là aussi toute la limite d'un exemple et d'une base simplifiés.
    Je vais commencer par rappeler la logique SAP (tu vas vite comprendre) et faire un pseudo rapprochement avec notre exemple.
    J'espère que cela ne modifie pas complètement ton programme et le temps que tu y as consacré

    Le concept d'autorisation SAP repose sur 3 conditions: l'objet, le champ de cet objet et enfin la valeur de ce champ.
    Prenons l'exemple de notre table d'éligibilité mais coté SAP pour l'accès à la transaction SE80.
    Condition1; Condition2; Condition3; Relation
    S_DEVELOP; ACTVT; 01; OU ------- Objet, Champ, Valeur
    S_DEVELOP; ACTVT; 06; OU
    S_TCODE; TCD; SE80; ET
    S_TRANSPRT; ACTVT; 01; OU
    S_TRANSPRT; ACTVT; 05; OU

    Tu remarqueras que, une fois combinée (et c'est là où je n'ai pas été assez clair effectivement), les condition1 et condition2 forment 3 blocs :
    S_DEVELOP + ACTVT
    S_TCODE + TCD
    S_TRANSPRT + ACTVT

    Le système s'attend donc à retrouver des utilisateurs ('clients') qui répondent favorablement à ces 3 blocs avec, dans ce cas précis:
    S_DEVELOP + ACTVT + la valeur 01 OU la valeur 06
    S_TCODE + TCD + seule la valeur SE80
    S_TRANSPRT + ACTVT + la valeur 01 OU la valeur 05

    Dans le cadre de mes clients, ca donnerait
    Eligibilité
    Secteur Eligibilité Condition1 Condition2 Condition3 Relation
    SUD 01 [A C] 03 OU --- 1 bloc de condition A+C+ 03 ou 02
    SUD 01 [A C] 02 OU
    SUD 01 01 02 03 ET ---- 1 bloc de condition 01+02+03
    SUD 01 X Y Z ET --- 1 bloc de condition X+Y+Z

    Est-ce suffisamment clair ou dois-je te donner plus d'explications ??
    Désolé

  15. #15
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    dagada75, je t'ai envoyé un message privé pour te prévenir que le code a été mis à jour. Tiens-moi au jus

  16. #16
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    Paidge,
    J'ai répondu à ton MP.
    J'ai adapté ton code, qui fonctionne sur la base test, à mon cas.
    Mais ca bug car il n'aime pas le GROUP BY (Relation) en conflit avec DISTINCT...

    C'est très clair ...

  17. #17
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    Bon ca c'est réglé j'avais un oublié un champ Relation quelque part ...

  18. #18
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    ca tourne ... ca tourne !!!! (plus de 20 000 lignes de conditions).

    Je te tiens au courant !!

  19. #19
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    hummmm....les résultats sont vides ...

    tu es sûr qu'il faut mettre la condition RELATION et pas condition3 dans le code suivant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     strSQL = "SELECT DISTINCT Condition1, Condition2, Condition3, Relation " & _
                 "FROM Eligibilité " & _
                 "WHERE Secteur='" & fldsConditions(0).Value & "' " & _
                        "AND Eligibilité='" & fldsConditions(1).Value & "' " & _
                        "AND Condition1='" & fldsConditions(2).Value & "' " & _
                        "AND Condition2='" & fldsConditions(3).Value & "' " & _
                        "AND Relation='" & fldsConditions(4).Value & "' " & _
                 "ORDER BY Relation, Condition1, Condition2,Condition3;"

  20. #20
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    Salut Paidge,

    Ci joint un extrait de ma base où, je pense avoir respecté à la lettre tes reco.
    Sommes-nous d'accord que TSD29 devrait apparaitre dans la liste ?

    Dagada75
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/08/2014, 12h42
  2. [XL-2002] Recherche d'une valeur sur plusieurs feuilles avec conditions
    Par Rat-Thon dans le forum Excel
    Réponses: 4
    Dernier message: 06/12/2013, 12h26
  3. Réponses: 2
    Dernier message: 28/05/2009, 15h44
  4. [XSL]récupérer une valeur de plusieurs fichiers XML
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 05/02/2006, 00h32
  5. VBA : ajouter une valeur dans une liste déroulante
    Par remi59 dans le forum Access
    Réponses: 4
    Dernier message: 22/12/2005, 10h01

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