[Access] Fonction de module VBA dans requete

Fermé
dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 - 28 sept. 2004 à 10:26
dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 - 22 févr. 2006 à 13:39
Bonjour,
J'ai 2 tables contenant des numeros de téléphone que je voudrais comparer. Dans les 2 tables il s'agit de champ de type texte. Mais dans l'une les numéros sont de la forme " 00 00 00 00 00 " et dans l'autre "00000000".
J'ai crée une fonction SupprEspace dans un module VBA. Comment l'appeler dans ma requete pour que je puisse comparer ces champs?
Je suis evidemment ouvert à d'autres procédés si ils sont plus simples ou fonctionnent.

Merci.

a+
dje-dje

Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres 

7 réponses

DaNot Messages postés 221 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 4 novembre 2005 163
28 sept. 2004 à 11:14
Salut,

Soit en utilisant le generateur d'expression ou en tapant directement le nom de la fonction dans ta requete SQL :
SELECT supprEspacePerso([Numeros]![NUMERO]) AS Expr1
FROM Numeros;

DaNot
un Libre ouvert à la source ...
0
dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 757
28 sept. 2004 à 11:20
Merci de ton aide.
Maintenant je n'ai plus d'erreur qd j'appelle ma fonction dans ma requete.
MAIS! Helas, il y a un "mais"...

J'ai procédé ainsi:
Dans ma requete j'ai rajoute un champ:
Tel_Conv = SupprEspace ( [MaTable].[MonTel] )

Mais quand j'execute ma requete, il n'y a pas de changement.
J'ai modifié le code de ma fonction SupprEspace de cette facon:

Function SupprEspace ( S As String )
SupprEspace = 2
End Function

A l'execution, mes numéros de tel sont inchangés alors qu'ils devraient tous etre à "2". Ou alors, il y a un truc que je ne pige pas...

Merci

a+
dje-dje

Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres 
0
DaNot Messages postés 221 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 4 novembre 2005 163
28 sept. 2004 à 11:30
Il faut utiliser plutot :
SELECT ..., SupprEspace ( [MaTable].[MonTel] )  as Tel_Conv, ...
FROM ...;

Access aurait du planter et afficher un msg d'erreur non?

DaNot
un Libre ouvert à la source ...
0
dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 757
29 sept. 2004 à 17:38
Merci de ton aide.
J'ai eudeux-trois trucs à faire ces derniers jours et je n'ai pas pu revenir.
Mais j'ai avancé de mon côté.

Donc je me suis fait une table de test avec 2 fonctions de test.
1 qui Supprime les espaces, l'autre qui renvoit "A".
Les 2 fonctionnent (ont l'effet souhaité)dans un formulaire.
Seule celles qui renvoit "A" fonctionne dans une requete...
Là, j'en perd mon latin...

Encore merci de ton aide.

a+
dje-dje

Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 757
12 oct. 2004 à 09:46
Pour info, si je renomme ma fonction en "Toto ", ca fonctionne...
Pourquoi, si j'utilise un mot réservé, le compilateur ne me l'indique pas?

a+
dje-dje

Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres 
0
salut dje dje je realise un porojet un peu du mm style que toi et je suis perdu pourrais tu m'aider ??
g aussi 2 tables que je veux comparer un peu dans ton style tu es d'accord pour me rendre service??

merci
0
dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 757
22 févr. 2006 à 13:39
J'ai rien contre mais je n'ai pas retouché a Access depuis l'epoque du sujet (Ca va faire donc 2 ans). Rien ne t'empeche de creer un nouveau poste et de mettre un lien vers ce nouveau post dans celui-ci

a+
dje-dje
0