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 :

[SQL-VBA] Variable en parametre de requete SQL


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Par défaut [SQL-VBA] Variable en parametre de requete SQL
    Bonsoir,
    Question déjà posée (http://access.developpez.com/faq/?page=SQL#ReqParamVar) mais je ne vous cacherais pas que je n'ai pas compris ce code.
    Est-on forcément obligé de passer par Querydef pour utiliser une variable en tant que paramètre WHERE dans une requête SQL ??
    Si la réponse est non, comment la définir dans la reqête?
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim rst as DAO.Recordset
    Dim MaVariable as string
     
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM MaTable WHERE Colonne= MaVariable)
    Merci de vos futures explications.

  2. #2
    Faw
    Faw est déconnecté
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Par défaut
    Salut,
    avant tout il faudrait savoir ce que tu comptes faire exactement.


    Attention à la formulation des chaines qui sont interprétées comme des expressions SQL. Elle obéissent à une syntaxe rigoureuse.

    en attendant, de quel type est MaVariable?

    @+
    ps: l'objet QueryDef

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Par défaut
    Alors en fait dans mon cas précis , il est vrai que MaVariable (que j'ai défini en String) est en réalité une date mais pour exposer de facon plus générale j'avais choisi de demander avec une string....mais bon partons sur une date alors...

    Mon but ici est simple:
    Je rentre une date à la main que je recupere dans une variable (MaVariable)
    Et je veux ouvrir l'enregistrement qui y correspond dans la table (MaTable) et dans la Colonne (Colonne).

    Maintenant, j'ai été voir le (tres bon) lien que tu m'as donné:
    Dis moi si je me trompe, mais ca devrait donné quelquechose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Dim Db As DAO.Database
    Dim MaVariable as Date
    Dim Qdf As DAO.QueryDef
    Dim Rst As DAO.Recordset
    Dim SQL as string
     
    MaVariable = Forms![MonFormumlaire]![datetextbox].Value
    Set Db = CurrentDb
    SQL = "SELECT * FROM MaTable"
    Db.CreateQueryDef "Requete1", SQL
    Set Qdf = Db.QueryDefs("Requete1")
    Qdf.Parameters("Colonne").Value = "#MaVariable#"
    Set Rst = Qdf.OpenRecordset
     
    db.close
    qdf.close
    rst.close
    set db = nothing
    set qdf = nothing
    set rst = nothing

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    bonjour, je te propose ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Qdf.Parameters("Colonne").Value = "#" & MaVariable & "#"
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Par défaut
    alors j'ai essayé ce que tu m'as dit jpcheck, mais hélas j'ai une erreur qui me dit:
    Erreur d'exécution '3265':
    Elément non trouve dans cette collection.

    Alors je me suis dit, peut-etre une erreur dans la valeur affecté dans ma variable et donc il ne trouve pas la valuer dans ma table, mais non car je fais un
    et le résultat renvoyé est bon.
    Mais n'y a t-il pas une histoire de date US avec jour et mois inversé ?

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    bon ben à ce moment là tu intègres directement dans ta requête SQL le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ..."WHERE MaDate = #" & MaVariable &"#"
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

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

Discussions similaires

  1. [AC-97] Requete SQL et variable VBA
    Par servtech2 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 15/03/2010, 15h34
  2. Remplacer une partie de chaine par une variable
    Par JPaul94300 dans le forum VBA Access
    Réponses: 6
    Dernier message: 04/02/2009, 17h52
  3. Requete SQL pour intersection entre 2 autres requete SQL
    Par p'tite Sandrine dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 06/09/2007, 12h18
  4. probleme d'utilisation de variables reel dans 1 requete SQl
    Par arawak dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 12/01/2006, 15h41
  5. Prob de requete sql et variable
    Par agent-zaizai dans le forum ASP
    Réponses: 11
    Dernier message: 21/10/2003, 16h54

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