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

Requêtes et SQL. Discussion :

fonction VraiFaux avec résultat a TOUT [AC-365]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Homme Profil pro
    Bidouilleur de piètre qualité
    Inscrit en
    Septembre 2020
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Bidouilleur de piètre qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2020
    Messages : 41
    Points : 40
    Points
    40
    Par défaut fonction VraiFaux avec résultat a TOUT
    Bonjour,

    Dans ma BD j'ai une fonction public fma qui correspond au nom d'une machine (NOMMACHINE).
    Selon l'user cette fonction prend une valeur définie.

    Dans une requête je veux faire le tri avec la fonction VraiFaux.
    En mode création , dans la colonne du champ "Machine"
    je saisie VraiFaux(fmac()="TOUTES";"NEXUS2";fmac()),
    • Si NOMMACHINE=NT4, j'ai bien uniquement les enregistrements correspondant à la NT4
    • Si NOMMACHINE=S60, j'ai bien uniquement les enregistrements correspondant à la S60
    • Si NOMMACHINE=TOUTES j'ai bien uniquement les enregistrements correspondant à la NEXUS2


    Mais
    Comment faire pour
    • Si NOMMACHINE=TOUTES avoir les enregistrement de toutes les machines.
      VraiFaux(fmac()="TOUTES";"*";fmac()) ne ramène rien
      VraiFaux(fmac()="TOUTES";Comme "*";fmac()) ne ramène rien

    Et
    • Si NOMMACHINE=LP avoir les enregistrements des machines NT4 et S60 sans la NEXUS2.
      J'ai bien la solution de saisir
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      VraiFaux(fmac()="LP";"NT4";fmac())
      VraiFaux(fmac()="LP";"S60";fmac())
      mais j'ai 14 machines....



    Merci

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 736
    Points : 14 758
    Points
    14 758
    Par défaut
    bonjour,
    VraiFaux(fmac()="TOUTES";Comme "*";fmac()) ne ramène rien
    la syntaxe est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme VraiFaux(fmac()="TOUTES"; "*";fmac())
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre du Club
    Homme Profil pro
    Bidouilleur de piètre qualité
    Inscrit en
    Septembre 2020
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Bidouilleur de piètre qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2020
    Messages : 41
    Points : 40
    Points
    40
    Par défaut
    Bonjour,

    Merci à Toi TEE_GRANDBOIS.

    Et as tu une solution pour mon 2ème cas :

    Si NOMMACHINE=LP avoir les enregistrements des machines NT4 et S60 sans la NEXUS2

    Merci en tout cas

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 736
    Points : 14 758
    Points
    14 758
    Par défaut
    bonsoir,
    Si NOMMACHINE=LP avoir les enregistrements des machines NT4 et S60 sans la NEXUS2
    malheureusement, dans ton cas, le Vraifaux (ou même le Premvrai) ne peut pas faire de miracles: on ne peut pas utiliser à la fois LIKE et IN().
    Le plus simple serait de créer une fonction qui traiterait tous les cas et il se trouve que tu en utilises une: fmac(), il faudrait suivre cette piste.
    Que contient la fonction actuellement ? Peux-tu poster le code ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre du Club
    Homme Profil pro
    Bidouilleur de piètre qualité
    Inscrit en
    Septembre 2020
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Bidouilleur de piètre qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2020
    Messages : 41
    Points : 40
    Points
    40
    Par défaut
    Bonjour tee_grandbois,
    Je suis assez perfectible en matière de fonction.
    Dans l'autoexec, selon l'user je défini un NOM_MACHINE.
    Dans Public fonction j'ai mis fmac()=NOM_MACHINE,
    et j'étais au max de mes compétences...
    Voici un tableau de mon besoins

    Nom : tri2.JPG
Affichages : 64
Taille : 115,7 Ko

    Le fonctionnement de ma base est simple, j'ai une table liée A et Une requête R-A .
    Dans ma requête R-A j'ai typé mes machines
    Dans une requête R-A1 je viens chercher les données dans R-A et je fais un filtre sur le type de machine avec le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme VraiFaux(fmac()="TOUTES";"*";VraiFaux(fmac()="4PP";"LPP4*";VraiFaux(fmac()="LPP";"LPP*";VraiFaux(fmac()="LPR";"LPR*";[ligne] & "-" & fmac()))))
    Toutes mes autres requêtes pointerons sur R-A1
    ça à l'air de marcher, j'espère que cela ralentira pas trop la base.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Simple fonction avec résultat (Thread)
    Par z4k4r14 dans le forum Débuter
    Réponses: 1
    Dernier message: 02/04/2012, 11h36
  2. [XL-2003] Fonction recherche avec résultat = n° lignene
    Par Toto_le_héros38 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2011, 18h10
  3. Réponses: 5
    Dernier message: 02/12/2008, 16h42
  4. [Smarty] Attribuer une class en fonction d'un résultat avec une variable
    Par kitten13 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/09/2008, 20h03
  5. [EXPRESSION]fonction vraifaux avec (comme)
    Par samimikha dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2007, 18h22

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