|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
Consultant informatique Inscription : juillet 2011 Messages : 2 ![]() |
Bonjour,
j'ai le problème suivant. j'ai une base de donnée Accès 2010 dans laquelle j'ai définit une fonction fnFunc qui retourne une chaine j'utilise cette fonction (publique) dans une requête reqQuery: Code :
select t.champ1, fnFunc(t.champ2) as champ2 from tblTable as t Dans un document Word, je créé une fonction qui ouvre la base de donnée Accèss (sans problèmes), J'essaye d'ouvrir un recordset sur la requete precedement definie: Code :
set rst=db.openrecordset("reqQuery", dbOpenDynaset) Code :
set rst=db.openrecordset("reqQuery", dbOpenDynaset) Citation:
Mon objectif est de déporter au maximum certains traitement dans le base de données afin de rendre mon code Word plus lisible et surtout plus général, sans avoir de traitement spécifique de formatage de données. |
|
|
|
01
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Je pense que tu ne peux pas ouvrir une requête contenant une fonction définie par l'utilisateur à l'extérieur d'Access.
La solution serait de remplacer ta fonction fnFunc par son équivalent écrit à partir des fonctions intégrées (DFirst(), Left(), Right(), ...). A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 | ||
Consultant informatique Inscription : juillet 2011 Messages : 2 ![]() |
En effet, c'est aussi la conclusion à laquelle je suis arrivé.
Le problème en fait c'est que la fonction en question est en réalité une requete, un peu comme si j'avais fait: Code :
Sinon je crois que le plus efficace serait d'utiliser une vrai base de données, dans laquelle je peux faire des fonction intégrées. |
||
|
|
00
|
|
|
#4 | |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Citation:
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() |
Bonjour,
J'ai un soucis du même genre avec une fonction left. Je poste ce que j'ai constaté chez moi, peut-être cela permettra-t-il de trouver une solution pour l'un et pour l'autre. Dans un query, j'utilise la fonction suivante, pour obtenir la première lettre contenue dans un champ prénom : Si je lance le query en exécution, j'ai une erreur 3085 Undefined function 'Left' in expression. Or, j'ai créé cette fonction avec l'assistant fonction dans la conception du query. Je pense, dans mon cas, qu'il y a un problème de référence. Peut-être une bibliothèque non référencée, ou dont la priorité est mal placée. C'est d'autant plus ennuyeux dans mon cas en ce sens que cette application tourne correctement sous Access 2002, 2003, 2007 mais pas sous 2010. En vous souhaitant une bonne journée. Edit : Hum... Omnubilé par la recherche d'une solution à mon problème, je n'ai pas regardé la date du message original de cette discussion. |
|
|
00
|
|
|
#6 | ||
![]() ![]() ![]() |
Bonjour,
ZargosLord/marot_r Il est inexact de dire qu'il n'est pas possible d'exploiter une fonction perso dans une requête via DAO et un Recordset... Le seul pépin dans ce cas est que le mode Debogage au pas à pas peut être perturbé. Cepandant, la fonction doit être une vraie fonction... Par exemple : Code :
C'est effectivement un problème de référence. Met des Option Explicit dans tous tes modules et Compile ton projet. Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
||
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() |
@Argyronet : Merci, je vais essayer.
|
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() |
Bonjour,
J'ai passé en revue tous mes modules. Formulaires, Rapports et modules proprement dits. J'ai rajouté là où cela manquait (très peu, en fait). Et j'ai toujours cette erreur. Mais je dois préciser qu'elle survient lors de l'ouverture d'un formulaire dont le recordsource est lié à un query. C'est dans mon query que j'utilise cette fonction Left. Bonne journée. |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() |
Et as-tu compilé ton projet ?
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() |
Euh, non. Pas encore.
Je fais dés que possible, j'ai une autre modification urgente à faire dans un autre projet. |
|
|
00
|
|
|
#11 |
|
Membre habitué
![]() |
Bonjour,
@Argyronet Bon, ça va prendre un peu plus de temps que je ne l'avais pensé pour la compilation. Je dois revérifier mes dernières modifications dans ce projet avant. J'ai détecté un autre problème lors de ma tentative de compilation. ![]() Faut que je corrige cela en premier lieu. Je reviens te dire quoi plus tard. Bonne journée. |
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() |
Bonjour,
J'ai recompilé le projet. Aucune erreur de compilation. Mais le problème persiste pour cette fonction Left. Je continue mes recherches pour solutionner le problème. Merci de te pencher sur mon soucis. Bonne journée. |
|
|
00
|
|
|
#13 |
|
Membre habitué
![]() |
Visiblement, chez moi, c'est un problème avec ACCESS sur la machine avec laquelle je teste l'application avant de l'envoyer chez le client.
En effet, quand j'installe sur une machine différente, je n'ai plus le problème et je suis sous ACCESS 2010 aussi. Je me trompe peut-être mais j'ai l'impression que ACCESS est corrompu sur ma machine habituelle de test. Je vais le réinstaller pour vérifier. |
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() |
Bonjour,
Après réinstallation de ACCESS sur la machine de test, je n'ai plus le problème. Une bonne journée à tous. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com