Fonction non définie dans l'expression

allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008 - 31 janv. 2008 à 21:21
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008 - 7 mars 2008 à 11:54
Bonsoir,

je bute depuis pas mal de temps ça :

Lorsque je veux faire exécuter une fonction j'ai ce message :

fonction "xxxx" non définie dans l'expression....

J'ai beau coher et décocher les références, rien à faire....à priori pas d'erreur dans le code.....j'ai suivi les tutoriels...help me!!! (access 2007, WXP)

Function Date_convocation3(strDécision As String) As Date
Dim DtmConvocation As Date
'Décision(1) = "Apte 1 an"
'Décision(2) = "Apte 2 ans"
'Décision(3) = "Mis en attente de révision par le médecin-chef"
'Décision(4) = "Inapte opérationnel 1 mois"
'Décision(5) = "Inapte opérationnel 2 mois"
'Décision(6) = "Inapte opérationnel 3 mois"
'Décision(7) = "Inapte opérationnel 6 mois"
'Décision(8) = "Inapte opérationnel 12 mois"
'Décision(9) = "Inapte opérationnel définitif"
'Décision(10) = "Inapte secours à personnes temporaire"
'Décision(11) = "Inapte Secours à personnes définitif"
'Décision(12) = "Inapte incendie temporaire"
'Décision(13) = "Inapte incendie définitif"
'Décision(14) = "Inapte aux sports statutaires temporaire"
'Décision(15) = "Inapte aux sports statutaires définitif"
'Décision(16) = "Adaptation personnelle au sport"
'Décision(17) = "Apte avec restrictions (préciser)"
'Décision(18) = "A revoir"




Select Case strDécision
Case "Apte 1 an": DtmConvocation = (Date + 365)
Case "Apte 2 ans": DtmConvocation = (Date + 730)
Case "Mis en attente de révision par le médecin-chef": DtmConvocation = (Date + 30)
Case "Inapte opérationnel 1 mois": DtmConvocation = (Date + 30)
Case "Inapte opérationnel 2 mois": DtmConvocation = (Date + 60)
Case "Inapte opérationnel 3 mois": DtmConvocation = (Date + 90)
Case "Inapte opérationnel 6 mois": DtmConvocation = (Date + 180)
Case "Inapte opérationnel 12 mois": DtmConvocation = (Date + 365)
Case "Inapte opérationnel définitif": DtmConvocation = (Date + 365)
Case "Inapte secours à personnes temporaire": DtmConvocation = (Date + 90)
Case "Inapte Secours à personnes définitif": DtmConvocation = (Date + 365)
Case "Inapte incendie temporaire": DtmConvocation = (Date + 90)
Case "Inapte incendie définitif": DtmConvocation = (Date + 365)
Case "Inapte aux sports statutaires temporaire": DtmConvocation = (Date + 90)
Case "Inapte aux sports statutaires définitif": DtmConvocation = (Date + 365)
Case "Adaptation personnelle au sport": DtmConvocation = (Date + 365)
Case "Apte avec restrictions (préciser)": DtmConvocation = (Date + 90)
Case "A revoir": DtmConvocation = (Date + 30)
Case Else: DtmConvocation = "Vérifier la date de convocation !"
End Select
Date_convocation3 = DtmConvocation
End Function

64 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
2 févr. 2008 à 23:14
Bonsoir Allroadspp,
Bonsoir Mpi,

Tu veux dire que dans une requête Selection, tu génères
le champ Convocation en faisant appel à ta fonction déclarée
dans un module ?

Plus de précision stp.
PS: on va finir par savoir, mpeme si c' est au compte-goûte <hr />
... Il y' en a même qui m' ont vu voler.
<hr />
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
2 févr. 2008 à 23:19
OK, je comprend mieux où voulait en venir LIBRE_MAX ...
Regarde ce lien, il pourrait servir (?)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008
2 févr. 2008 à 23:19
Voui, je pense que c'est ça !

titre du champ = Convocation : Date_convocation3([Décision)]
0
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008
2 févr. 2008 à 23:21
ok j'y vai
0

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

Posez votre question
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008
2 févr. 2008 à 23:30
Désactivez la case à cocher de la bibliothèque de types ou d'objets marquée comme MANQUANT : <nom_référence>.
Pour supprimer la référence, vous pouvez également restaurer le fichier référencé à l'emplacement spécifié dans la boîte de dialogue Références. Si ce fichier se trouve à un nouvel emplacement, supprimez la référence MANQUANT : <nom_référence> et créez une référence vers le fichier du nouveau dossier.

Oui, j'avais déjà consulté ce lien , et le problème est au 4 ème point (je suis sous acces 2007).
Je n'ai pas d'objet marqué comme MANQUANT.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
2 févr. 2008 à 23:30
Oui MPi,
mais le lien ne mentionne que les fonctions prédéfinies.
Or ici il d' agit d' une fonction personnalisée.Et donc placée sous
la rubrique :
 Fonctions
    - Fonctions intègrées ==>reconnues
    -Date_convocation3

<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
2 févr. 2008 à 23:33
les fonctions intègrées genre :Left$, Date,Sum, Count etc

vous voyez ce que je veux dire ?
<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
0
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008
2 févr. 2008 à 23:35
non, je ne vois pas pour l'instant
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
2 févr. 2008 à 23:44
allroadspp,
Est-ce que ton programme roule uniquement sous Access ou tu utilises l'Automation ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
2 févr. 2008 à 23:45
Bon,
Ouvres ta base dans Access et dans l' onglet Requete, cliques sur nouveau.
Puis selectionne une table.
Dans la prtie reservée à l' insertion des champs, click droit sur la 1 colonne
puis sur generer. Ouvres ensuite l' item Fonctions (sous fonctions intègrées)et
regardes si le nom du module ou est déclarée ta fonction y figure.
Si c' est oui cliques dessus et regardes sur la partie droite si le nom de la fonction apparrait.
0
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008
2 févr. 2008 à 23:45
Uniquement access, à priori....c'est quoi l'automation ?
0
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008
2 févr. 2008 à 23:51
Oui elle apparait.
Le chemin :
Fonctions
       Bases de données
               Date_Convocation3 (dans la colonne du milieu)
Pui apparait également dans la colonne de droite lorsque je clik dessus
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
2 févr. 2008 à 23:58
Maintenant, ta requete tu tentes de l' éxécuter ou ?
A priori sous Access elle marche.
Mais précise ou est_ce que tu l' exécutes ?
0
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008
3 févr. 2008 à 00:01
Je ne travaille que sous access.
Je cherche simplement à exécuter ma misérable requête qui se nomme Programmation-Convocations...
C'est lors de son ouverture en mode feuille de données que le message apparait.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
3 févr. 2008 à 00:16
Franchement je ne vois pas.
Mais procédant par élimination:
1-Initialises ta fonction
Function Date_convocation3(strDécision As String) As Date
Dim DtmConvocation As Date
Date_convocation3=Date()

..
etc

2-Ouvres ta requete mode conception (selectionnes là puis click sur modifier)
va vers ton champ décision et click droit puis générer
selection ensuite ta fonction dans la partie fonction et inséres ton champ à calculer
entre les parenthèses.Comme dans
Ainsi tu élimines le risque d' erreur dans la sybthaxe.
Convocation : Date_convocation3([Décision)]
Et regardes ce que ça donne.

PS: MPi, ce sont les heures de plaisir dont tu parlais l' autre fois

Tu crois que nos clients se doutent de quelques choses ?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
3 févr. 2008 à 00:23
pas du tout LibreMax...

Perso, j'utiliserais une autre méthode que ces fonctions dans les requêtes, mais bon...
Et je n'utiliserai plus jamais Access comme seul logiciel. L'utilier comme base de données, ça peut aller, mais tout faire sous Access, non merci... j'ai déjà donné...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008
3 févr. 2008 à 00:25
J'ai eu déjà fait ça, mais si je laisse le générateur d'expression "s'exprimer", là j'ai une erreur de suntaxe puisqu'il ne me mets pas automatiquement les crochets.
Je fais ça dans le champ convocation et non dans le champ décision n'est-ce pas.

Bref, quand il y a erreur de suntax, il me dit : erreur de syntaxe
Quand y en a pas, il me dit : fonction non reconnue !
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
3 févr. 2008 à 00:31
oui oui le champ convocation.
Excuses moi je me suis trompé.
Maintenant essayes de prèdéder le chmp decision par le nom de la table
Convocation : Date_convocation3([TaTable]![[Décision)] .
Dernière question, après je me couches.(aux deux sens du terme)
Est-ce que ta requete est une requete regroupement ?
0
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008
3 févr. 2008 à 00:36
La réflexion de MPI est intéressante, car je galère vraiment avec Access et mes 750 dossiers à gérer.
Malheureusement, je n'ai pas de budget pour l'acquisition d'un pseudo-logiciel à multiples licences (et factures à rallonges) et aucun développeur ne nous a, à ce jour, proposé d'outil intéressant et ergonomique pour les utilisateurs....peu enclins à manipuler le mulot.

En bref, quel logiciel me conseillerai-tu pour développer ma base de donnée, avec quelques requêtes de ce type ? 
Ou quelle autre méthode que ces fonctions utiliserais-tu ?

Merci
0
allroadspp Messages postés 38 Date d'inscription samedi 16 juin 2007 Statut Membre Dernière intervention 31 octobre 2008
3 févr. 2008 à 00:37
Oui, elle regroupe 2 tables
0
Rejoignez-nous