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 :

Mise a jour requête avec paramètre par liste déroulante


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    Points : 62
    Points
    62
    Par défaut Mise a jour requête avec paramètre par liste déroulante
    Bonjour à tous,

    J'ai une question qui je pense est une question de débutant mais bon faut bien débuter un jour .

    Alors voilà j'ai la requête SQL direct suivante :
    select * from get_cables('');
    En fait cette fonction get_cables est une "simple" requête avec plein de jointure qui est enregistrer directement dans la base.
    En paramètre je peux entrer une chaine de caractère et ma recherche se fait donc en fonction de ce paramètre.

    A partir de cette requête j'ai créé le formulaire suivant :
    Nom : Formulaire.PNG
Affichages : 139
Taille : 25,3 Ko

    Ce formulaire est ouvert depuis un menu principale dans lequel j'entre le paramètre de ma requête :
    Nom : Main.PNG
Affichages : 127
Taille : 1,8 Ko

    Derrière ce formulaire j'ai le code vba suivant qui me permet de réécrire la requête avec le bon paramètre avant d'ouvrir le formulaire de la requête :
    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 cbSearchIDENT_Click()
     
        Dim db As DAO.Database, qdef As DAO.QueryDef
        Dim strNomRequete As String, strSQL As String
        Dim strNomForm As String
     
        ' Nom de l'objet requête Access SQL-Direct
        strNomRequete = "Get_Cable"
        strNomForm = "Cables"
        ' Code SQL de la requête SQL-Direct
        strSQL = "select * from get_cables('" & Search_IDENT.Value & "');"
     
        ' On ferme la requête si elle est déjà ouverte en
        ' mode feuille de données
        DoCmd.Close acQuery, strNomRequete
        ' On référence la base de données en cours
        Set db = CurrentDb
        ' on référence un objet QueryDef sur la requête SQL-Direct
        Set qdef = db.QueryDefs(strNomRequete)
        ' on modifie le code SQL de la requête SQL-Direct
        qdef.SQL = strSQL
        Set qdef = Nothing
        Set db = Nothing
        ' on ouvre la requête
        DoCmd.OpenForm strNomForm
     
    End Sub
    Pour l'instant tout ça marche bien, mais je voudrais arrivé à un fonctionnement différents.

    En fait je souhaiterais intégré mon champs de recherche directement dans mon formulaire Cables. Comme ceci :
    Nom : Cables.PNG
Affichages : 132
Taille : 27,7 Ko

    Au niveau du fonctionnement ce que j'aimerais c'est que :
    - à l'ouverture du formulaire tous les champs soit vide
    - ensuite l'utilisateur entre son critère de recherche dans la zone de texte "recherche ident" et clique sur "rechercher"
    - a ce moment là la requête est modifiée et exécutée et la liste déroulante se remplie ainsi que les champs
    - enfin l'utilisateur peut naviguer dans les résultats de recherche grâce soit à la liste déroulante soit au flèche en bas à gauche

    Je pense que je vois à peu près comment faire ça de manière "manuel" en vba, c'est à dire en lançant ma requête puis lisant le recordset pour remplissant les champs un par un en code mais je me dis qu'il doit y avoir une manière moins laborieuse de faire tout ça avec access.

    Merci d'avance pour vos conseils.

    PS : Désolé si cette question est très simple ou si elle a déjà été répondue par le passé, je suis un grand débutant en Access et j'ai pas vraiment trouvé les bons mots clés pour une recherche éfficace.

  2. #2
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Bonjour,
    en modifiant la source de ton formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     me.recordsource= xxxxxxxxxx
    (https://docs.microsoft.com/fr-fr/off...m.recordsource) au clic sur le bouton rechercher cela ne répond pas à ta question ?

    A+

  3. #3
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Par contre une question (surement con aussi) :
    select * from get_cables('');
    En fait cette fonction get_cables est une "simple" requête avec plein de jointure qui est enregistrer directement dans la base.
    En paramètre je peux entrer une chaine de caractère et ma recherche se fait donc en fonction de ce paramètre.
    Tu fais comment depuis access pour passser ces paramètres entre parenthèses depuis un select ???

    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    Points : 62
    Points
    62
    Par défaut
    C'est du sql direct, donc je réécris la chaine sql dans la fonction Private Sub cbSearchIDENT_Click() que j'ai décrite un peu plus bas.

    Pour votre solution j'ai pas encore essayé mais j'ai l'impression que ca ne marchera pas vu que je suis en sql Direct et pas sur des tables ACCESS.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 14/10/2016, 15h46
  2. executer une requête par liste déroulante
    Par lolo_bob2 dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 11h35
  3. [Oracle] - Requête avec paramètres
    Par b00tny dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/04/2006, 16h09
  4. test d'une requête avec paramètre
    Par hervé14670 dans le forum Access
    Réponses: 1
    Dernier message: 12/01/2006, 22h45
  5. Problème mise à jour SUDO avec apt
    Par byloute dans le forum Debian
    Réponses: 6
    Dernier message: 27/10/2005, 09h14

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