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 :
En fait cette fonction get_cables est une "simple" requête avec plein de jointure qui est enregistrer directement dans la base.select * from get_cables('');
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 :
Ce formulaire est ouvert depuis un menu principale dans lequel j'entre le paramètre de ma requête :
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 :
Pour l'instant tout ça marche bien, mais je voudrais arrivé à un fonctionnement différents.
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
En fait je souhaiterais intégré mon champs de recherche directement dans mon formulaire Cables. Comme ceci :
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.
Partager