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 :

Introduire une varibale texte dans une requête


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut Introduire une varibale texte dans une requête
    Bonjour, ma question est peut-être un peu bête mais depuis des jours j'essaie d'incorporer une variable texte dans une requête, sans succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select SUM(Jan) from ....
    et j'essaie de mettre Jan dans une variable String : mois1 = "Jan", puis de l'introduire dans une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    i = 1
    Select SUM(' " & mois & i & " ') from ....
    i est un compteur qui est dans une boucle parce que je veux identifier mois1, mois2, mois3 etc...
    Et ca ne marche pas et la je vois pas quoi faire.
    Merci d'avance.
    Les élèves glandeurs c'est comme le linge, quand il fait beau ca sèche.

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Pourquoi ne pas plutôt utiliser un tableau ? i en serait l'indice.

    En espérant t'aider.
    J'aime les gâteaux.

  3. #3
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    Je vois pas comment utiliser un tableau puis je ne vois pas comment introduire ma variable mois1 dans ma requête même si je faisait un tableau.
    Les élèves glandeurs c'est comme le linge, quand il fait beau ca sèche.

  4. #4
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    J'ai essayer avec un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim tableau(2) As String
     
    tableau(1) = "Jan"
    tableau(2) = "Fev"
     
    Set db = DBEngine.OpenDatabase("C:\Documents and Settings\avrilb\Bureau\Projet Base de donnée.mdb")
     
    SQL = "SELECT SUM(" & tableau(1) & ") ....
    mais ca ne marche pas il ne me fait aucune erreur mais il n'est pas reconnu en tant que "Jan".
    Les élèves glandeurs c'est comme le linge, quand il fait beau ca sèche.

  5. #5
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    Ah si ca marche le problème était juste le rafraichissement enfin bref mon 2ème problème ce sont les nombres que je remplace par des lettres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT SUM(" & tableau(v) & ") FROM Liaison WHERE Index='i' OR Index='j';"
    i et j s'incremente a chaque tour de boucle suelement ca ne marche pas, pourtant j'avais vu qu'il fallait mettre les nombres de cette façon entre quote.
    Les élèves glandeurs c'est comme le linge, quand il fait beau ca sèche.

  6. #6
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 155
    Points : 196
    Points
    196
    Par défaut
    Je me permets d'intervenir dans cette discussion.
    Si tu utilises la méthode des tableaux, tu ne dois pas oublier cette fichue disposition des guillemets. Dans ton cas ce serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT SUM('" & tableau(1) & "') ....
    car tableau() est une chaîne de caractères.

    Mais je vais te donner un autre truc pour utiliser des variables publiques dans une requête :
    1 - Utilise un module particulier où seront déclarées toutes tes variables publiques.
    2 - Dans ce même module, crée des fonctions dont le rôle est de retourner la valeur courante de ces variables. Dans ton exemple, il y aura
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public Mois1 As String
     
    Public Function Valeur_Mois1() As String
       Valeur_Mois1 = Mois1
    Exit Function
    3 - Dans ta requête, tu écriras :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM('" & Valeur_Mois1() & "') FROM ....
    En adaptant l'écriture des guillemets au type de ta variable (ici c'est du texte).

    Tu peux aussi déclarer des tableaux publics. Dans ce cas, ta fonction Valeur_... aura un argument entier (ou même byte) correspondant à l'indice.

  7. #7
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Citation Envoyé par Alain36
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT SUM('" & tableau(1) & "') ....
    Je pense qu'il y a une petite confusion, les apostrophes sont effectivements obligatoires lorsque la variable est de type String. Seulement celà ne concerne uniquement que le contenu du WHERE. Pas besoin d'apostrophes dans le SELECT ici donc.

    i et j s'incremente a chaque tour de boucle suelement ca ne marche pas, pourtant j'avais vu qu'il fallait mettre les nombres de cette façon entre quote.
    Bon, tu n'as pas eu de chance car l'endroit où tu l'as vu t'as raconté un peu n'importe quoi ... Pour utiliser la valeur d'i dans la requête, il faut que tu utilises la concaténation, comme tu l'as bien fait pour ton tableau.

    En espérant t'aider.
    J'aime les gâteaux.

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  2. Réponses: 1
    Dernier message: 24/03/2009, 23h23
  3. Réponses: 3
    Dernier message: 29/06/2007, 15h29
  4. Effacer une chaine contenue dans une zone text
    Par johnnywalker dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/04/2007, 12h52
  5. Plusieurs lignes de texte dans une variable texte
    Par Loko dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 15/12/2005, 12h51

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