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

Access Discussion :

Requête, paramètre et variable


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Par défaut Requête, paramètre et variable
    Bonjour,

    J'essaye dans un formulaire d'avoir des listes déroulantes qui sont filtrées entre elles, mais tout dépend de celle qu'on met à jour.

    Au départ, tout les éléments de chaque listes sont disponibles, mais si on met la liste commune à jour (par exemple) la liste lieu-dit est filtrée...

    Ca ne fonctionne pas avec des requêtes classiques voir http://www.developpez.net/forums/vie...r=asc&start=15

    Donc j'ai essayé le truc de la FAQ qui est à cette adresse :
    Est-il possible de créer une requête paramétrée dont la valeur du paramètre proviendrait d'une variable ?
    http://access.developpez.com/faq/?page=SQL#ReqParamVar

    ça ne marche pas non plus, sur plusieurs point :


    Mes requêtes sont des requêtes selection, appliqué à des liste déroulantes, par exemple :
    Num_Lieu_Dit---Lieu_Dit---Code_Postal

    Le critère de filtre est sur Code_Postal, mais au démarrage du formulaire, il faudrait qu'il soit égal à "*", puis lorsqu'on met à jour la liste ldc_Code_Postal, le critère est la valeur de ldc_Code_Postal.
    Tel que :

    Requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Num_Lieu_Dit, Lieu_Dit, Code_Postal
    From tbl_Lieu_Dit
    WHERE tbl_Lieu_Dit.Code_Postal = [Code_Postal];
    Code formulaire
    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
    21
    22
    23
    24
    25
    26
    27
     
    Private sub form_open()
     
    Set qdf= CurrentDb.QueryDefs("qry_Lieu_Dit")
          With qdf
             .Parameters("Code_Postal") = *
             .Execute
          End With
     
    End Sub
    -----------------------------------------------------------------------------------
    Private Sub ldc_Code_Postal_AfterUpdate ()
     
    Set qdf= CurrentDb.QueryDefs("qry_Lieu_Dit")
          With qdf
             .Parameters("Code_Postal") = [Forms]![Formulaire1]![ldc_Code_Postal]
             .Execute
          End With
     
    Me.ldc_Lieu_Dit.RowSource = qdf   'ne marche pas
    Me.ldc_Lieu_Dit = qdf                    'ne marche pas
     
     
    Me.refresh
    Me.ldc_Lieu_Dit.Requery
     
    End sub
    Alors plussieurs questions :
    1. Comme ce sont des requête selection, le ne fonctionne pas, il y a-t-il autre chose à mettre ?
    2. Comment faire pour que la requête de ma liste de choix prenne en compte le nouveau critère (pour ne pas écrire "ne marche pas") ?
    3. La condition "*" ou * ne marche pas non plus, quelle condition mettre pour qu'il selectionne tout les enregistrements...?

    Voilà, voilà...
    Pas simple à comprendre j'ai écrit dans le speed, j'ai essayé tout ça hier, mais le forum ne marchait pas, de rage j'ai effacé tous les changements .... Ce n'est pas les codes réels, je viens de les taper de mémoires....

    Si jamais vous y comprennez quelque chose et que vous avez une solution, merci...

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Par défaut
    peut tu
    faire un

    msgbox qdf

    après le end with
    pour voir ce que contient ta variable.[/code]

  3. #3
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    déjà, je suis étonné par ton = *

    j'aurais plus vu éventuellement = "*" même si je n'utilise jamais les .parameters et que je préfère plutôt écrire un SQL dynamique ...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Par défaut
    Comme je l'ai dit, j'ai écrit vite fait ce code de mémoire, j'y avais mis à l'origine un "*"...

    C'est quoi du SQL dynamique

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Par défaut
    En fait tu n'a pas besoin que les listes proviennent de requettes sélection.

    Tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.ldc_Lieu_Dit.RowSource = "select ......."
    Donc tu peux par exemple mettre dans le formload:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim Sql as string
    sql = "SELECT Num_Lieu_Dit, Lieu_Dit, Code_Postal From tbl_Lieu_Dit "
    Me.ldc_Lieu_Dit.RowSource = sql
    re.requery
    Et dans ldc_Code_Postal_AfterUpdate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    sql = " SELECT Num_Lieu_Dit, Lieu_Dit, Code_Postal From tbl_Lieu_Dit  WHERE tbl_Lieu_Dit.Code_Postal = """ & me.ldc_Code_Postal & """"
    Me.ldc_Lieu_Dit.RowSource = sql
    re.requery
    et tes listes seront mise à jour

  6. #6
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Dans ton cas, tu devrais définir le SQL de ta zone de liste en fonction de la valeur d'un autre contrôle ... ensuite un simple MaZoneDeListe.Requery suffirait dans l'événement AfterUpdate()

    un exemple par ici >> http://access.developpez.com/faq/?page=zdl#DepZdl

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Par défaut
    En fait, grâce à zoom61, j'ai réussi à faire un truc dans ce style, mais au départ ça marchait pas, car il fallait que la liste lieu_dit à l'ouverture ne soit pas filtrée par la liste code_postal....

    En mettant "*" dans les paramètre valeur par défaut de la liste code_postal et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE tbl_Lieu_Dit.Code_Postal = like [forms]![formulaire1].[ldc_Code_Postal
    ça marche...

    J'ai posté ce post dans un moment de désespoir où je pensais ne pas trouver la solution en SQL... et j'aimerai également comprendre comme marche cette histoire de paramètre... et surtout comment rebasculer la requête paramétré dans la liste déroulante....

    Voilà, voilà...

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

Discussions similaires

  1. [AC-2003] Requête paramétrée et variable
    Par Chagui dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 22/12/2010, 19h22
  2. Variable "date" dans une requête paramétrée
    Par amtdev dans le forum Bases de données
    Réponses: 10
    Dernier message: 25/01/2008, 19h42
  3. [code VBA]passage de variable pour une requête paramétrée
    Par christrabin dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2007, 14h30
  4. Réponses: 7
    Dernier message: 11/10/2006, 13h35
  5. Requète paramétrée avec résultat variable
    Par slackjayo dans le forum Access
    Réponses: 2
    Dernier message: 28/04/2006, 20h39

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