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 Rechdom dans une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2013
    Messages : 136
    Par défaut Fonction Rechdom dans une requête
    Bonjour, dans une requête "R_Test" j'ai un champ dans lequel j'aimerais afficher le résultat d'une commande Rechdom.

    J'ai une table "T_Familles" qui comporte un champ "Marque" et "Préfixe"

    Dans ma Requête un champ calculé "Marque1" dont un vaut par exemple 6.

    J'arrive à ce que je souhaite avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1: RechDom("[Préfixe]";"T_Familles";"[Marque]=6")
    La où je bloque c'est pour spécifier un champ de la requête à la place de 6 pour avoir quelque chose de similaire à ça mais qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1: RechDom("[Préfixe]";"T_Familles";"[Marque]= R_Test.[Marque1]")
    Dois-je rajouter des " ' " à la fin ?

  2. #2
    Modérateur

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

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

    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RechDom("[Préfixe]";"T_Familles";"[Marque]=" & R_Test.[Marque1])
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2013
    Messages : 136
    Par défaut
    merci marot_r, il trouve la correspondance. aurais-tu une source qui explique les caractères à utiliser ? entre les " ' & ... ça n'est pas clair pour moi.

    merci

  4. #4
    Modérateur

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

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

    Je ne suis pas certain d'avoir compris ta dernière question donc ma réponse sera peut-être à côté de la cible.

    Quand on veut intégrer le contenu d'un élément externe à une chaîne de caractère, il faut que cet élément soit en dehors de la chaîne car ce qui est dans la chaîne n'est pas interprété par la machine, c'est juste pour l'humain.
    Donc il faut faire une concaténation en utilisant le et commercial (&).

    Note qu'on peut utiliser + au lieu de & mais il y a ambiguïté et Access risque de te faire une addition au lieu d'une concaténation.
    Si Access voit bien "1" + "2", il va faire te donner "12" mais s'il voit 1 + 2 il va te donner 3 alors que tu attends "12".
    Le & évite ce risque "1" & "2" donne la même chose que 1 & 2 c'est à dire "12".

    Revenons à ta question.

    Quand tu as écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1: RechDom("[Préfixe]";"T_Familles";"[Marque]=6")
    le 6 est une constante et donc n'avait pas à être interprété par Access au moment de la création du code. Tu demandais 6, tu avais 6.

    Losrque tu l'as changé pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1: RechDom("[Préfixe]";"T_Familles";"[Marque]= R_Test.[Marque1]")
    Tu demandais à Access de trouver une marque égale au texte "R_Test.[Marque1]" puisque R_Test.[Marque1] et dans la chaîne et il n'y a pas de données qui correspondent.
    De plus R_Test.[Marque1] n'est pas un nombre donc Access ne pouvait rien en faire.


    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rechDom("[Préfixe]";"T_Familles";"[Marque]=" & R_Test.[Marque1])
    On demande à Access de composer une chaîne (contrairement au chaîne fixes précédentes) dont un morceau est variable et contenu dans R_Test.[Marque1].
    On met donc R_Test.[Marque1] en dehors de la chaîne pour que Access puisse le chercher et mettre la valeur qu'il contient.

    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.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2013
    Messages : 136
    Par défaut
    merci, tu m'as compris

    n'ayant pas ces notions mes lignes ne fonctionnent pas souvent et ça ne tient des fois qu'à un ' entre " ...

    Merci.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    À mon vais il faut aussi que j'explique les délimiteurs de données :
    • Pour les textes, 2 délimiteurs possibles : l'apostrophe (') et le guillemett (").
      Personnellement, je préfère le " car il y a rarement des " dans les textes en français tandis qu'il y a assez souvent des '.
      Attention si on utilise le " comme délimiteur et qu'on compose une chaîne, il faut le doubler :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      RechDom("[UnChamp]";"UneSource";"[ChampTexte]=""" & ValeurTexte & """")
      si on utilise l'apostrophe, il faut la doubler dans la valeur.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      RechDom("[UnChamp]";"UneSource";"[ChampTexte]='" & replace(ValeurTexte; "'"; "''") & """")
      dans le , "''") la partie verte c'est 2 apostrophes de suite pas un guilemet.
    • Pour les dates, délimiteur dièse (#).
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      RechDom("[UnChamp]";"UneSource";"[ChampDate]=#" & format(ValeurTexte;"aaaa\-mm\-jj") & "#")
      Le format n'est pas indispensable mais il évite à Access quand il voit 01/02/2106 de confondre le 1er février 2016 (format jj/mm/aaaa) avec le 2 janvier 2016 (format mm/jj/aaaa).
      Je vis dans un pays où les 2 systèmes sont utilisés couramment :-).
      En principe Access utilise ne intrene le foram américain (mm\jj\aaaa) mais je ne lui fait pas confiance.
    • Pour les nombres et tous les autres types, pas de délimiteur.


    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.

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

Discussions similaires

  1. utilisation de la fonction Partdate() dans une requête
    Par jm6570 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 01/02/2010, 11h55
  2. Fonction RechDom dans une requête
    Par bernardmichel dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/07/2007, 14h46
  3. [Requête] Utilisation d'une fonction perso dans une requête
    Par Julien Dufour dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2007, 09h53
  4. [ACCESS2002][fonction sum dans une requête]
    Par louroulou dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 09h26

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