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 :

Stocker le contenu d'une requête dans une variable ? [AC-2003]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 28
    Points : 25
    Points
    25
    Par défaut Stocker le contenu d'une requête dans une variable ?
    Bonjour à tous,

    j'ai bien cherché et je sais que le sujet est récurrent, mais je n'arrive pas à résoudre mon problème. Je cherche vraiment la solution la plus simple possible.

    j'ai un bouton d'un formulaire A qui ouvre un formulaire B en enregistrant l'OpenArgs du A, en l'occurence le N° de Lot.

    A chaque N° de Lot correspond une fourniture et je cherche par tous les moyens de récupérer dans une variable ce numéro de fourniture.

    J'ai essayé de définir une liste déroulante qui contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT T_Fourniture.Num FROM T_Fourniture INNER JOIN T_Lot ON T_Fourniture.Num = T_Lot.R_Fourniture WHERE T_Lot.Num = Me.OpenArgs
    . Ca marche mais ça me propose la seule valeur possible et ne me la sélectionne pas. Je ne peux donc pas utiliser la valeur de la liste déroulante dans mes autres requêtes.
    Sous forme de zone de texte je n'ai pas réussi.

    J'ai essayé avec une sous-requête : ma sous-requête buggue et je n'arrive pas à trouver si j'ai la bonne syntaxe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute ("INSERT INTO T_ValeurCF (R_Lot, R_Fourniture, R_Specification) VALUES (" & Me.NumLot.Value & ", (SELECT T_Fourniture.Num FROM T_Fourniture INNER JOIN T_Lot ON T_Fourniture.Num = T_Lot.R_Fourniture WHERE T_Lot.Num = " & Me.NumLot.Value & " ), " & Me.lstResultats.Value & ");")
    Le bout qui pose clairement problème est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT T_Fourniture.Num FROM T_Fourniture INNER JOIN T_Lot ON T_Fourniture.Num = T_Lot.R_Fourniture WHERE T_Lot.Num = " & Me.NumLot.Value & " )
    .
    La sous-requête marche bien si elle est requêtée en solo, et la requête longue marche si je remplace la sous-requête par son résultat.

    Si vous avez une solution la plus conne possible qui permettrait de stocker en VBA une valeur issue d'une requête

    Merci beaucoup d'avance !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 70
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    Tu peux récupérer la valeur dans la table avec la fonction "DLookup".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Résultat=DLookup("[Colonne à récupérer]", "NomTable","[Colonnecritère]='" & Critère & "'")
    Bonne journée.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    Effectivement, pourquoi faire simple quand on peut faire compliqué !!

    Merci beaucoup ça marche au poil

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

Discussions similaires

  1. Ajouter une colonne dans une table via une requête
    Par Alien_psy dans le forum Requêtes et SQL.
    Réponses: 25
    Dernier message: 23/02/2013, 05h24
  2. Réutiliser des données d'une requête dans une requête
    Par mims1664 dans le forum Requêtes
    Réponses: 12
    Dernier message: 06/02/2009, 14h12
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Réponses: 2
    Dernier message: 02/06/2006, 11h26
  5. Réponses: 4
    Dernier message: 01/12/2005, 14h36

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