Fonction iif dans une liste deroulante?

Résolu
tchitchy Messages postés 42 Statut Membre -  
Jean_Jacques Messages postés 1045 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Actuellement en train de bosser sur une base de données access 2007 je me retrouve confronté à un problème.

J'ai une table patient qui contient beaucoup de champs et donc de données mais en particulier le champs nom_assurance. Dans ce champs là, j'ai mis une liste déroulante afin de choisir à quelle assurance appartient le patient ( vert, jaune, rouge ) et dans le cas où il n'a pas d'assurance il y a le choix "prive".
J'ai deux tables supplémentaire T_exam et T_exam_prive. Chacune ayant un champs membre_exam.
Sur la table patient, j'ai un champs membre_exam dans lequel j'ai mis une liste déroulante. Mais pour cette liste j'aimerais mettre une fonction iff dans le contenu. En gros si le patient est "prive" (du champs nom_assurance de la table patient) alors le contenu de la liste deroulante sera pris dans la table T_exam_prive. Si le patient possede une assurance (donc vert, jaune ou rouge) alors la liste déroulante aura le contenu de la table T_exam.
J'ai essayé plein de syntaxes différentes mais access ne veut pas.

Pour info voici ce que j'ai mis dans la case contenu de la liste déroulante

select iif(T_patient.nom_assurance="prive",T_exam_prive.membre_exam, T_exam.membre_exam)

Merci de votre aide

5 réponses

  1. Jean_Jacques Messages postés 1045 Date d'inscription   Statut Membre Dernière intervention   112
     
    Bonsoir tchitchy,

    Pour traiter le sujet, je verrais plutôt des conditions ....

    If condition Then
    instruction1

    Else
    If condition2 Then
    instruction2

    End If
    End If

    Cordialement

    La science ne fait que trouver ce qui existe depuis toujours.
    REEVES Hubert.
    0
  2. tchitchy Messages postés 42 Statut Membre 2
     
    Merci de m'avoir répondu Jean_Jacques. Je vais voir ce que je peux faire.

    Cordialement
    0
  3. Rhyton le boyar
     
    Perso, je modifierai mes données.
    Je ferais une seule table à 2 ou trois colonne dans laquelle je mettrais
    Privé Membre exam1
    Privé Membre exam2
    Privé Membre exam3
    Privé Membre exam4
    Privé Membre exam5
    Public Membre exam1
    Public Membre exam2
    Public Membre exam3
    Public Membre exam4
    Public Membre exam5

    Ensuite je fais une liste déroulante à partir d'une requete avec les deux colonne ou pour le champs PrivéPublic je mat la condition où [table]![quelle assurance]

    mais c'est peut être compliqué

    Rhyton
    0
  4. tchitchy Messages postés 42 Statut Membre 2
     
    J'y avais pensé mais d'autres critères entrent en jeu c'est le hic. C'est tendu mais j'ai trouvé une réponse. J'ai tout modifié j'ai juste mis une seule table avec tout (comme tu dis Rhyton) et après j'arrive à mes fins avec deux requêtes création de table + trois requêtes et bien évidement une macro qui lie tout ce beau capharnaüm :)

    En tout cas je vous remercie pour la rapidité et la qualité de vos réponses. Encore merci.

    Tchitchy
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Jean_Jacques Messages postés 1045 Date d'inscription   Statut Membre Dernière intervention   112
     
    Bonjour,
    Intéressants ces échanges de points de vue. Pour le fun, j'en remets une petite couche ...
    Pour enrichir le débat, j'avance la solution [Case is].
    NB : [Dossier.Text] est le texte sélectionné dans la liste déroulante.
    - Le texte sélectionné provoque l'affichage du formulaire [stDocName] corespondant ....

    Dim stDocName As String
    Dim stLinkCriteria As String

    Select Case Dossier.Text
    Case Is = "ERIDAN"
    stDocName = "Suivi ERIDAN Gestion"
    Case Is = "MAINTENANCE"
    stDocName = "Suivi MAINTENANCE Gestion"
    Case Is = "TIBCO"
    stDocName = "Suivi TIBCO Gestion"
    Case Is = "UNION"
    stDocName = "Union des tables ERIDAN MAINTENANCE TIBCO"
    Case Is = "SYNTHESE ERIDAN MENSUELLE"
    stDocName = "SYNTHESE ERIDAN MENSUELLE"
    Case Is = "SYNTHESE MAINTENANCE MENSUELLE"
    stDocName = "SYNTHESE MAINTENANCE MENSUELLE"
    Case Is = "UNION"
    stDocName = "Union des tables ERIDAN MAINTENANCE TIBCO"
    End Select

    DoCmd.OpenForm stDocName, , , stLinkCriteria

    Bonne journée
    Cordialement
    0