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 :

Utiliser une variable dans une requête SQL [AC-2003]


Sujet :

IHM

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut Utiliser une variable dans une requête SQL
    Bonjour et meilleurs vœux à tous,
    mon problème du 1er de l'an !

    Je souhaite utiliser une variable dans la requête source d'un état
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    varMaTable="nomdeMaTable"
    sqlFiltre = "SELECT * FROM " & varMaTable & ""
    j'ouvre l'état avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenQuery "rptEtat",acViewPreview
    Comment affecter le contenu de ma requête SQL à la source de mon état ?
    Merci pour votre aide
    Alain

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Sur l'évènement Ouverture de l'état:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Report_Open(Cancel As Integer)
    Dim varMaTable as String
    Dim sqlFiltre as String
     
    varMaTable="nomdeMaTable"
    sqlFiltre = "SELECT * FROM " & varMaTable 
    Me.RecordSource = sqlFiltre
    End Sub
    Dernière modification par Invité ; 01/01/2012 à 18h56.

  3. #3
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Pour compléter l'information de Gayot , je te conseille la lecture de ce tuto : Plusieurs requêtes pour un même état

    Bonne lecture

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par Jeannot45 Voir le message

    Pour compléter l'information de Gayot , je te conseille la lecture de ce tuto : Plusieurs requêtes pour un même état
    Bonne lecture
    Bonjour,
    L'article cité me donne plusieurs réponses.
    Je souhaite maintenant utiliser NZ dans ma requête
    Mes essais sont laborieux...

    aucun enregistrement ne s'affiche si maListe est vide avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlFiltre = "SELECT * FROM " & varMaTable & " WHERE monChamp = NZ('" & maListe & "', monChamp)"
    tous les enregistrements s'affichent si maListe est vide avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlFiltre = "SELECT * FROM " & varMaTable & " WHERE NZ('" & maListe & "', monChamp)"

  5. #5
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    la Fonction NZ(NomVariable,ValeurSiVide) te permet de tester d'une manière plus simple le cas d'une valeur nulle

    exemple :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Nz(Mavariable,0) = 0 Then
        ....
    else
        ....
    End If
    Par contre dans ta syntaxe SQL, j'utiliserai plutot la fonction VraiFaux() dans l'interface VBE qui se traduit pas Iif() en SQL
    Exemple :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sqlFiltre = "SELECT * FROM " & varMaTable & " WHERE Iif(" & monChamp & "= ;monChamp;'" & maListe & "')"

    Je n'ai pas testé donc à vérifier

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut
    Bjr Jean,

    Dans ta proposition, je ne comprend par comment "Iif" teste "maListe"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlFiltre = "SELECT * FROM " & varMaTable & " WHERE Iif(" & monChamp & "= ;monChamp;'" & maListe & "')"
    J'ai la solution avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sqlFiltre = "SELECT * FROM " & varMaTable & _
    " WHERE Iif ( '" &  maListe & "';'" & maListe.value & "'; monChamp)"
    merci pour ton aide précieuse
    Alain

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/06/2011, 13h39
  2. utilisation d'une variable d'une class dans une autre class
    Par the watcher dans le forum Langage
    Réponses: 7
    Dernier message: 31/08/2010, 14h01
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  5. Réponses: 1
    Dernier message: 15/02/2007, 00h24

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