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

IHM Discussion :

Requête - variable en critère de recherche [AC-2007]


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Points : 38
    Points
    38
    Par défaut Requête - variable en critère de recherche
    Bonjour,

    je débute sous access, habituellement je code en PHP/MySQL.
    Je n'arrive pas à utiliser une variable dans une requête ....

    Je m'explique. L'utilisateur sélectionne un n° ex: 50.115, lequel correspond à une tournée d'un ramassage scolaire pour un bus.

    Ce numéro est affilié à plusieurs itinéraires.
    Dans ma table itinéraires, je souhaite lister tous les records qui contiennent le n° choisi. Seulement, ce numéro n'est pas dans un champ distinct, mais se trouve avec la description. Qui plus est, il n'est pas toujours en début de champ.
    du coup je cherche quelque chose du style: *50.115*.
    Quelqu'un peut m'aider?
    Comment passer la variable dans la requête?

    d'avance merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Et si comme critère, tu mets:
    Comme '*50.115*'
    Voir http://access.developpez.com/faq/?pa...res#RechMotChp

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    si je bloque la valeur comme '*50.115*' ça fonctionne, il me sort que les résultats (43/605) qui contiennent le numéro en question.
    Le problème, c'est que en métant la variable, ça va pas.
    J'ai aussi tenté de passer la variable dans une table => T_Variable et de mettre le champ comme critère, mais ça fonctionne pas non plus.

    Est-ce qu'il y a un paramètre dans access à mettre ou autre`?

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 050
    Points : 24 642
    Points
    24 642
    Par défaut
    Bonjour,

    Ta variable vient de VBA ?

    Ta requête est une requête enregistrée ?

    Il faut préciser tout ça c'est important.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    navré de n'avoir pas précisé.
    Ma variable, je la charge quand l'utilisateur entre le nr. dans un champ de formulaire. Du coup le code VBA s'execute sur "After Update".
    Par sécurité j'affiche la variable, et elle contient bien la valeur.

    Après ben je n'arrive pas à l'utiliser dans ma requête SQL. Bizarre.
    Du coup, j'ai par le même procédé de script VBA fait inscrire la valeur dans une table que je nomme T_Variable, et voudrais ensuite utiliser le champ de cette dernière comme critère dans la requête, mais sans succès aussi.

    Suis un peu perdu.

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 050
    Points : 24 642
    Points
    24 642
    Par défaut
    Ok si c'est un controle d'un formulaire il faut utiliser la syntaxe suivante :

    Dans une requete enregistrée, sur la ligne critère de la colonne du champ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =formulaires!nom_du_formulaire!nomducontrole
    Pour une requete composée dans VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select .... Where monchamp=" & forms.nom_du_form.nomducontrole & "...;"
    Mais si c'est du texte alors ça change dans VBA il faut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select .... Where monchamp='" & forms.nom_du_form.nomducontrole & "'...;"
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select .... Where monchamp=""" & forms.nom_du_form.nomducontrole & """...;"
    La 2ème syntaxe est conseillé si tu rencontre des apostrophes dans ton critère.

    Attention :

    Si tu as des espaces et autres caractères spéciaux dans tes noms d'objets (forms ou controles) il faut les mettre entre crochet.

    Ps : evite ces caractères tu évitera également les problèmes.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Merci Loufab, néanmoins il ne s'agit pas d'un contrôle.
    En fait j'ai un formulaire, dans leque il y a un champ, ou le numéro est saisi.

    Ce numéro sert dans la requête de recherche, dont le résultat est affiché dans le sous-formulaire du premier.

    le code VB s'execute uniquement quand on saisi un code, et c'est cette variable que je n'arrive pas à reprendre...
    pas évident access. PHP/MySQL c'est bien plus simple

    voici encore le code VBA que j'utilise pour passer le paramètre en variable et afficher la variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Kombinationsfeld3_AfterUpdate()
    'Crée une nouvelle variable
    Application.TempVars.Add "KursBuchNr", Kombinationsfeld3.Value
    'Affiche la variable
    MsgBox Application.TempVars("KursBuchNr").Value
    End Sub
    J'ai réussi à utiliser la variable, merci pour votre aide. Par contre j'ai tjrs le problème que si je mets en critère de recherche "*50.115*" ça fonctionne, mais la variable contenant le nr me sort plus de records. Genre tous ceux qui contiennent un 50 etc.
    une idée?

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 050
    Points : 24 642
    Points
    24 642
    Par défaut
    Bonjour,

    Le terme "champ" désigne l'élément de la table. Le controle est un élément d'un formulaire ou d'un état.

    Il s'agit bien d'un controle dans lequel tu saisis la valeur 50.115.

    Ce qui est certain c'est qu'on ne programme pas avec ACCESS comme avec PHP.

    TmpVars est utile quand tu veux échanger des valeurs entre les macros et le vba. Dans ton cas tu échange des valeurs entre un formulaire et une requete.

    Utilise la méthode que je t'ai donné, à savoir , faire référence directement au controle du formulaire.

    Si tu montrais le script de ta requete...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    merci pour votre aide, ça fonctionne.
    La méthode de Loufab fonctionne, je viens de la tester.
    Mais cette nuit j'ai essaillé autre chose, à savoir passer par une table intermediaire, que je mets à jour avec la valeur saisie ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "*" & ([T_Variables].[Variable]) & "*"
    Merci pour vos efforts.
    Bonnes salutations

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 050
    Points : 24 642
    Points
    24 642
    Par défaut
    Effectivement peut importe d'ou vient la valeur du moment qu'elle est correctement écrite.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/01/2011, 14h17
  2. [Toutes versions] requête multiple dans formulaire de recherche multi critère.
    Par Lyude dans le forum IHM
    Réponses: 16
    Dernier message: 11/05/2010, 18h51
  3. Réponses: 4
    Dernier message: 20/01/2010, 11h25
  4. Requête avec en critère une variable globale
    Par mael94420 dans le forum WinDev
    Réponses: 13
    Dernier message: 20/09/2006, 11h29
  5. Requête avec comme critère de recherche un %
    Par Poussy-Puce dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/03/2006, 20h15

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