allroadspp
Messages postés38Date d'inscriptionsamedi 16 juin 2007StatutMembreDernière intervention31 octobre 2008
-
31 janv. 2008 à 21:21
allroadspp
Messages postés38Date d'inscriptionsamedi 16 juin 2007StatutMembreDernière intervention31 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
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 3 févr. 2008 à 00:45
Personnellement je ferais ça :
Accroches-toi :
IIf(strDécision="Apte 1 an",(Date + 365),IIf(strDécision="Apte 2 an",(Date + 730),
IIf(strDécision="Mis en attente de révision par le médecin-chef" ,(Date + 30),
IIf(strDécision="Inapte opérationnel 1 mois": ,(Date + 60),...etc..))))))))))))))))
ça va ? t' as pas le vertige ?
Pour le regroupement je parlais du genre Somme, Premier etc...
allroadspp
Messages postés38Date d'inscriptionsamedi 16 juin 2007StatutMembreDernière intervention31 octobre 2008 3 févr. 2008 à 00:49
Au début j'ai fait ce que tu proposes. Malheureusement, je ne peux entrer que 250 caractères et là gros pb, car je ne peux pas mettre les 18 items. Au début il y en avait 26 !
C'est insomniant !
Bonne nuit, et peut être à bientôt.
En tout cas merci à tous les deux.
Je m'accroche et ne perds pas espoir....
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 3 févr. 2008 à 00:53
[auteur/ALLROADSPP/1088959.aspx allroadspp]
,
Si c'était possible, je te suggérerais VB6, mais comme il n'existe à peu près plus sur le marché, j'irais timidement vers VB.Net ... sans trop savoir... ou encore Excel qui est un bon compromis à VB6... mais il s'agit là d'Automation... dont tu peux faire la recherche pour comprendre le sens... Access ne sert que d'outil dans ce cas et non pas de logiciel.
Pour le reste de ton problème, je te laisse entre les mains de LIBRE_MAX qui semble beaucoup plus en mesure de t'aider que moi...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 3 févr. 2008 à 01:01
Premier veut dire First.
Le générateur va traduire.
ta requete étant un regroupent, il faut qu' il y' ait une fonction pour ça.
Mais puisque tu as choisis Expression il faut que cette fonction soit dans
la définition du champ généré.
Ne m' en veux pas si je m' exprime mal.
Tu auras ainsi:
Decision Convocation
"Apte 1 an" Date + 365
"Apte 2 ans" Date + 730
"Mis en attente de révision .." Date + 30
"Inapte opérationnel 1 mois" Date + 30
Ta clé #Decision etant cle secondaire dans ta table Visite_d_aptitude,
tu lies les deux tables sur ce champ .
Ajoutes cette nouvelle table à ta requete, et tu fais glisser le champ
Decision de la table Visite et le champ Convocation. de la table DECISIONS.
La relation étant, tu n' auras aucun mal à avoir l' equivalent de decision
sans devoir le génèrer.
Pour la liste de choix des items , tu proposes directement le champ Décision
à partir de la table DECISIONS.
<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
allroadspp
Messages postés38Date d'inscriptionsamedi 16 juin 2007StatutMembreDernière intervention31 octobre 2008 3 févr. 2008 à 12:48
Salut,
C'est certainement une solution....pour l'instant j'ai pas tout compris, mais je vois à peu près ce que tu me proposes :
Une nouvelle table consacrée aux décisions, contenant 2 champs :
1° les motifs de décision
2° les nombres correspondants au nombre de jours de délais (à ajouter à la date du jour dans la requête)
Mais j'ai pas compris comment relier ces deux champs pour qu'à une décision corrseponde un chiffre.
Je vais suivre tes conseils et tenter la manip.
Par contre, je suis sur le départ, je rentre dans ma lointaine contrée (un département français d'amérique du Sud...)
Je te donnerai des nouvelles dans le courant de la semaine, peut être mercredi.
En tout cas un grand MERCI !!
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 4 févr. 2008 à 21:43
+
il faut que ton champ Convocation soit calculé à compté d' une date
et non sur la base de la date du jour.
Sinon la requete te ressortira à chaque fois une date à venir, à chaque fois que tu l' éxécutes.
Essaies plutôt d' avoir dans la table VISITES (si ce n' est pas déjà fait) une date_visite ou une date_decision à partir de laquelle tu calculeras ta
date convocation.
Convocation:[VISITE]![Date_visite]+[DECISION]![I_Convocation]
<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
allroadspp
Messages postés38Date d'inscriptionsamedi 16 juin 2007StatutMembreDernière intervention31 octobre 2008 5 mars 2008 à 02:02
Bonjour,
Ta méthode fonctionne très bien, merci.
Mais nouveau problème : dans ma requête, je voudrais voir apparaitre seulement la date progrmmée par la dernière visite pour chaque agent. Or toutes les dates de toutes les visites de chaque agent apparaissent, ce qui rend ma requête inutile, et ma contrarie au plus haut point......une idée ?
La fonction DernDom ne peut pas m'aider à priori.
allroadspp
Messages postés38Date d'inscriptionsamedi 16 juin 2007StatutMembreDernière intervention31 octobre 2008 5 mars 2008 à 02:02
Bonjour,
Ta méthode fonctionne très bien, merci.
Mais nouveau problème : dans ma requête, je voudrais voir apparaitre seulement la date progrmmée par la dernière visite pour chaque agent. Or toutes les dates de toutes les visites de chaque agent apparaissent, ce qui rend ma requête inutile, et ma contrarie au plus haut point......une idée ?
La fonction DernDom ne peut pas m'aider à priori.
allroadspp
Messages postés38Date d'inscriptionsamedi 16 juin 2007StatutMembreDernière intervention31 octobre 2008 5 mars 2008 à 02:02
Bonjour,
Ta méthode fonctionne très bien, merci.
Mais nouveau problème : dans ma requête, je voudrais voir apparaitre seulement la date progrmmée par la dernière visite pour chaque agent. Or toutes les dates de toutes les visites de chaque agent apparaissent, ce qui rend ma requête inutile, et ma contrarie au plus haut point......une idée ?
La fonction DernDom ne peut pas m'aider à priori.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 5 mars 2008 à 15:37
Salut,
le voyage a été long à ce que je vois
Quoi qu' il en soit, ravi de te retrouver.
Pour ta question, à priori il faudra passer par une requete regroupement sur ta table VISITES,Genre GROUP BY AGENT, LAST(IdVisite) pour n' avoir qu' une ligne par agent.
Et c' est cette nouvelle requete que tu dois lier à ta table DECISION.
Je dis à priori parce que je crains fort de ne plus savoir ou on était.
Rappelles-moi déjà ce que tu as fait .