Accès requêtes access via VB6 - VB/VBA/VBS - Programmation
Marsh Posté le 13-06-2006 à 15:05:54
Je n'ai pas précisé mais évidemment db est de type Database.
Marsh Posté le 13-06-2006 à 15:43:24
La bonne syntaxe est :
Set param = db.QueryDefs("Req_recherche_poste" )
Marsh Posté le 13-06-2006 à 15:57:16
Merci je n'étais pas passée loin j'avais tenté un truc comme ça tout à l'heure....C'est fatigant d'être débutant
Ca m'enlève une grosse épine du pied ! Si quelqu'un sait aussi comment on remplit le flexgrid facilement (genre comment accéder au résultat i de la requête ?) je vais vraiment aimer ce forum
Marsh Posté le 13-06-2006 à 15:02:52
Encore besoin d'aide...
J'ai une application sous VB, et je dois appeler dans cette application des requêtes enregistrées dans une BD sous access, et afficher le résultat dans un tableau.
Le premier cas que je traite : une requête de sélection, avec 3 paramètres. Les paramètres servent à filtrer selon 1, 2 ou les 3 critères pour une recherche.
La requête sous Access fonctionne sans problème. Sous VB j'ai cru comprendre qu'on doit l'appeler dans un objet QueryDef pour avoir des paramètres.
L'appli demande les paramètres un après l'autre et je voudrais ensuite les utiliser dans la requête pour effectuer celle-ci et ensuite afficher les entrées trouvées dans un FlexGrid.
J'ai 2 soucis :
le premier est que j'ai une erreur 3061 "Trop peu de paramètres. 3 attendu" quand je lance la requête. Je ne sais pas d'ou ça peut venir car ça ne vient pas du remplissage ou non de tous les "filtres" possibles (on peut si on veut en remplir de 0 à 3, 0 affichant toute la table).
Voila le code :
Dim param1 As String
Dim param2 As String
Dim param3 As String
Dim param As DAO.QueryDef
Dim Rs As DAO.Recordset
param1 = InputBox("Entrez l'adresse IP du poste", "Recherche selon l'adresse" )
param2 = InputBox("Entrez le nom du poste", "Recherche selon le nom" )
param3 = InputBox("Entrer le login de l'utilisateur associé", "Recherche selon l'utilisateur associé" )
Set param = db.OpenRecordset("Req_recherche_poste" )
param.Parameters(0) = param1 '1er paramètre IP poste
param.Parameters(1) = param2 '2nd paramètre nom poste
param.Parameters(2) = param3 '3ème paramètre login utilisateur associé
Set Rs = param.OpenRecordset()
L'erreur apparait au niveau de la ligne Set param = db.OpenRecordset("Req_recherche_poste" )
Elle n'y est pas si je déclare param comme un Recordset, mais alors il n'y a pas de contrôles Parameters et je crois qu'ils me sont nécessaires (mais bon, je découvre...).
Quand j'aurai résolu ça je dois aussi afficher les résultats dans mon flexgrid, et si quelqu'un sait faire ça, je veux bien une méthode toute simple...Le nombre de lignes correspond aux nombre de réponses à la requête.
Voila, encore en quête d'une ame charitable....