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 :

Comment utiliser des variables dans une requête SQL ?


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut Comment utiliser des variables dans une requête SQL ?
    Je n'arrive pas à utiliser les variables a et b ds ma requête, à l'ouverture de l'état il me demande quelles sont leurs valeurs.
    Si vous avez une solution, merci.

    Voici le code, j'ai laissé une partie de la requête de côté.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Report_Open(Cancel As Integer)
    Dim a As String
    Dim b As String
     
    a = Forms!frmEntree!txtNoRef.Column(0, 0)
    b = Forms!frmEntree!txtNoRef.Column(0, 1)
    Me.RecordSource = "SELECT tblLots.CodeProduit, tblProduit.NomProduit, tblLots.NoRef" ...." WHERE NoRef = a OR NoRef = b"
     
    End Sub

  2. #2
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.RecordSource = "SELECT tblLots.CodeProduit, tblProduit.NomProduit, tblLots.NoRef" ...." WHERE NoRef = ' " & a & " ' OR NoRef = ' " & b & " ' "

    si tes variables sont de types string


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.RecordSource = "SELECT tblLots.CodeProduit, tblProduit.NomProduit, tblLots.NoRef" ...." WHERE NoRef = " & a & "  OR NoRef =  " & b
    si tes variables sont d'un type autre qu'une chaine de caractère

  3. #3
    jfc
    Invité(e)
    Par défaut
    Crée une fonction VBA qui renvoie la valeur de a et intègre cette fonction dans ta clause Where.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.RecordSource = "SELECT tblLots.CodeProduit, tblProduit.NomProduit, tblLots.NoRef" ...." WHERE NoRef = fReturna() OR NoRef = fReturnb()"

  4. #4
    Membre actif Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Points : 232
    Points
    232
    Par défaut
    Bonjour,

    le code dépend du type de tes variables et de tes champs
    si tes variables sont de type numérique (entier, long, etc...) alors le code de junior_jef fonctionne impecc...

    par contre, si c'est des chaines de caractères (string) alors il faut mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.RecordSource = "SELECT tblLots.CodeProduit, tblProduit.NomProduit, tblLots.NoRef" ...." WHERE NoRef = '" & a & "' OR NoRef = '" & b & "'"
    Après cela dépend aussi du type de tes champs sur lesquels tu exécutes tes conditions
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 316
    Points : 367
    Points
    367
    Par défaut
    Bonjour,

    Essaie de sortir les variables des côtes (") sinon il seront considérés comme tel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.RecordSource = "SELECT tblLots.CodeProduit, tblProduit.NomProduit, tblLots.NoRef  WHERE NoRef = " & a & " OR NoRef = " & b
    A+

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    Tout ça est intéressant, mais ne pas oublier un
    sinon ça n'aura pas d'impact
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    Je suis desolé de vous dire cela, mais rien ne fonctionne jusqu'au bout.
    Donc a et b sont des valeurs String.
    Le programme arrive à lire les variables avec la syntaxe " & a & " mais il y a alors une erreur de syntaxe. Et si je rejoute des quotes, cela ne fonctionne pas car il comprend que je cherche un Noref = & a &, il lit ce qu'il y a entre les quotes.

  8. #8
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    Caféine,
    J'avais fait un test sans me.requery en utilisant des valeurs que je connaissais, et ca fonctionnait. Ma procédure s'effectue avant l'ouverture du premier enregistrement dc j'en ai pas besoin si je ne me trompe pas.

  9. #9
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Pour déboguer, il faut utiliser le Debug.Print.

    Cf. mon tuto : http://cafeine.developpez.com/access...el/debugprint/

    Citation Envoyé par Ragnarok85
    Je suis desolé de vous dire cela, mais rien ne fonctionne jusqu'au bout.
    Donc a et b sont des valeurs String.
    Le programme arrive à lire les variables avec la syntaxe " & a & " mais il y a alors une erreur de syntaxe. Et si je rejoute des quotes, cela ne fonctionne pas car il comprend que je cherche un Noref = & a &, il lit ce qu'il y a entre les quotes.
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  10. #10
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    J'obtiens rien de plus avec DebugPrint, il me renvoit toujours erreur 3075, erreur de syntaxe.

  11. #11
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    Excusez moi, je vais aller me cacher.....

    Le code suivant fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.RecordSource = "SELECT tblLots.CodeProduit, tblProduit.NomProduit, tblLots.NoRef" ...." WHERE NoRef = '" & a & "' OR NoRef = '" & b & "'"
    Merci à gary-stoupy
    Cela ne fonctionnait pas car j'avais un deuxième problème, je n'avais pas encore enregistré les NoRef que je voulais afficher dans l'état.
    Merci à tout le monde

    Bon je vais essayer d'arrêter les boulettes...

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

Discussions similaires

  1. Mettre des variables dans une requête SQL
    Par tamtam64 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 20/01/2015, 13h25
  2. Utiliser les variables dans une requête sql
    Par LaPanic dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/10/2012, 17h08
  3. [SQL] Utilisation de variables dans une requête SQL
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/09/2006, 22h38
  4. [SQL] Utilisation de variables dans une requête SQL
    Par heteroclite dans le forum Langage
    Réponses: 8
    Dernier message: 07/09/2006, 22h38
  5. [SQL server] Comment Fusionner des données dans une requête
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2005, 15h24

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