Requete ACCESS avec fonction et VB 6.0

cs_deadisdead Messages postés 31 Date d'inscription jeudi 12 février 2004 Statut Membre Dernière intervention 30 septembre 2008 - 13 avril 2006 à 11:48
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012 - 13 avril 2006 à 17:36
Bonjour à tous,

Je vous explique mon problème. J'ai créé une fonction dans une base de données ACCESS qui me permet de faire un test dans une requete. ex:

SELECT * FROM table WHERE fct([toto])>0

Cette fonction 'fct' se trouve dans un module sous ACCESS et fonctionne parfaitement lorsque j'exécute la requête au sein de l'environnement ACCESS.

Mais voilà, j'ai besoin d'effectuer une requête de ce type sous VB 6.0 et lorsque j'utilise ma fonction 'fct' dans une requête par la méthode :

set rst = dba.OpenRecordset("SELECT * FROM table WHERE fct([toto])>0")

ou par la méthode

set rst = dba.OpenRecordset("test_requete") 'ma requete est enregistrée sous ACCESS

il me dit "fonction 'fct' non définie". Je ne sais vraiment pas comment utiliser cette fonction à distance d'autant plus qu'elle est trop complexe pour pouvoir être réalisée avec des instructions SQL simple.

Merci d'avance de votre aide

1 réponse

m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
13 avril 2006 à 17:36
Salut,



JE pense que ce que tu cherches à faire est impossible !!!

En fait ta fonction n'est tout simplement pas un élément de ta base de données.

Access(Jet) je comprend que des tables ou des requetes comme objet.

C'est peu commen si on ecrivait la meme fonction sous VB et on l'intégré dans la requete.

La seul solutions pour toi est d'exprimer ta fonction sous forme de
requete SQL, et lors de l'appel de ta requete tu créé une requete inner
join qui intègre ta requete (stocké).

ex: supposons que connaitre la valeur stock de ma gestion est complexe.

je fabrique une requete dans access qui determine cette valeur 'stock' dont le champ sera appelé 'toto'



dans tes requetes sous vb tu créé une requete sous la forme :

SELECT * FROM table inner join reqStock

on id.table = id.reqStock

where reqStock.toto>0
0
Rejoignez-nous