Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/11/2011, 12h25   #1
Invité de passage
 
Homme Laurent
Inscription : avril 2007
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Localisation : Suisse

Informations forums :
Inscription : avril 2007
Messages : 8
Points : 2
Points : 2
Par défaut Module VBA dans requête : Erreur "Fonction non définie dans l'expression"

Bonjour,

J'essaie pour la première fois d'utiliser un module VBA. Vu le message d'erreur obtenu, j'ai créé un module des plus simple (nommé Module1) pour tester et j'ai toujours le même message d'erreur :

Citation:
Fonction Module1 non définie dans l'expression
Voici mon code :
Code :
1
2
3
4
5
6
 
Option Compare Database
 
Public Function test() As String
test = "tt"
End Function
et ma requête :
Code :
1
2
 
SELECT Table1.id, Module1() AS test FROM Table1
J'utilise Access 2003, et j'ai bien essayé de voir s'il y a des dépendances manquantes, mais je ne trouve rien. Dans outils/références, il y a quelques références disponibles cochées, mais je ne vois pas de rubriques "manquantes".

Merci pour votre aide !
laurentw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 18h24   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 475
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 475
Points : 7 564
Points : 7 564
Tu ne peux pas appeler un module dans une requête mais tu peux appeler une fonction publique dans une requête.

Code sql :
SELECT Table1.id, Test() AS test FROM Table1

En passant dans tes options dans l'éditeur de code active la déclaration des variables obligatoire c'est une bonne habitude de programmation et cela peut te sauver des heures de recherche de bug.

Quand tu l'as activé Access ajoute automatiquement Option explicit au début de ton code dans tous nouveau module.

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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 18h34   #3
Invité de passage
 
Homme Laurent
Inscription : avril 2007
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Localisation : Suisse

Informations forums :
Inscription : avril 2007
Messages : 8
Points : 2
Points : 2
Merci beaucoup pour ta réponse.

J'ai suivi tes conseils, mais j'ai maintenant ce message d'erreur :

"Fonction 'Test' non définie dans l'expression"

J'ai pensé que c'était la majuscule et j'ai maintenant ce code mais toujours ce message d'erreur.

Code :
1
2
3
4
5
6
 
Option Compare Database
 
Public Function Test() As String
Test = "tt"
End Function
Merci pour ton aide.
laurentw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 18h38   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 475
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 475
Points : 7 564
Points : 7 564
Essaye :

Code sql :
SELECT Table1.id, Test() AS AfficheTest FROM Table1

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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2011, 11h06   #5
Invité de passage
 
Homme Laurent
Inscription : avril 2007
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Localisation : Suisse

Informations forums :
Inscription : avril 2007
Messages : 8
Points : 2
Points : 2
Malheureusement toujours la même erreur :

Citation:
Fonction 'Test' non définie dans l'expression
laurentw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2011, 12h36   #6
Membre Expert
 
Homme Michel
Ingénieur développement logiciels
Inscription : mai 2005
Messages : 1 584
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2005
Messages : 1 584
Points : 2 143
Points : 2 143
La réponse de Marot est la bonne.

Dans quel type de module as-tu déclaré Test . Il faut un module "standard" !

__________________
"tout le monde veut sauver la planète, mais personne ne veut descendre les poubelles." J Yanne
micniv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2011, 12h47   #7
Membre Expert
 
Inscription : mars 2006
Messages : 1 331
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 1 331
Points : 1 460
Points : 1 460
Bonjour,

Ta base n'aime peut-être pas => Test
Essayes en ajoutant un "f" genre :
Code :
1
2
3
Function fTest() As String
    fTest = "tt"
End Function
Cordialement.
__________________
Questions techniques par MP
Le peu que je sais, c'est à mon ignorance que je le dois.
...............................................................................Sacha Guitry
francishop est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/11/2011, 14h32   #8
Invité de passage
 
Homme Laurent
Inscription : avril 2007
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Localisation : Suisse

Informations forums :
Inscription : avril 2007
Messages : 8
Points : 2
Points : 2
Bien vu ! C'était effectivement le mot "Test" qui posait problème,en le remplaçant par "fTest", ça marche. Probablement conflit avec une fonction de ce nom ailleurs.

Ce qui est étrange, c'est que j'avais testé ce module sur un autre ordi avec une autre version de Access et ça marchait...

Merci beaucoup à tous.
laurentw est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h23.


 
 
 
 
Partenaires

Hébergement Web