OVH Cloud OVH Cloud

Fonctions

5 réponses
Avatar
Pierre chevalier
Bonjour,
je dois écrire plusieurs requêtes qui utilise toujours la mème table
Dans toutes ces requêtes j'ai plusieurs champs calculés qui se répetent sur
les différentes requétes
je voudrais créer une fonction pour chaque champ calculé afin que cette
foction soit réutilisable
exemple simple
je concatene le nom le prénom et l'age d'une personne
je voudrais crééer la fonction 'Prospects'
function Prospects () as string
prospects=nom & " " & prénom & " " & age
end function
ceci sans passer les paramètres mais en faisant référence aux éléments de la
table de ma requète ex: me.nom me.prénom me.age
pouvez vous m'aider

merci

5 réponses

Avatar
3stone
Salut,

"Pierre chevalier"
| je dois écrire plusieurs requêtes qui utilise toujours la mème table
| Dans toutes ces requêtes j'ai plusieurs champs calculés qui se répetent sur
| les différentes requétes
| je voudrais créer une fonction pour chaque champ calculé afin que cette
| foction soit réutilisable
| exemple simple
| je concatene le nom le prénom et l'age d'une personne
| je voudrais crééer la fonction 'Prospects'
| function Prospects () as string
| prospects=nom & " " & prénom & " " & age
| end function


elle presque complète ta fonction...
à condition de renseigner les champs entre les parenthèses
et de t'adresser a ces variables dans ta fonction...



| ceci sans passer les paramètres mais en faisant référence aux éléments de la
| table de ma requète ex: me.nom me.prénom me.age


Me.Nom ne fait pas référence à une table... "Me" représente l'instance en cours
du formulaire ou de l'état dans lequel tu exécute le code;


Dans un module général (onglet Module)

Function fnProspect ( strNom, strPrenom, strAge) as string
fnProspect = strNom & " " & strPrenom & " " & strAge
End function


et dans la requete, tu fait un champ calculé:

Prospect: fnProspect(Nom,Prénom,Age)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Pierre chevalier
Bonsoir,
Ok, j'utilise couramment cette façon de faire, mais je voudrais donner à
l'utilisateur la possiblité de ne pas saisir
Prospect: fnProspect(Nom,Prénom,Age)
mais seulement
Prospect: fnProspect()
pour éviter qu'il se trompe, car j'utilise Access pour acceder de façon plus
conviviale à une base de données Mysql où les noms de champs sont du genre
'nom_00_01'
merci d'une réponse



Salut,

"Pierre chevalier"
| je dois écrire plusieurs requêtes qui utilise toujours la mème table
| Dans toutes ces requêtes j'ai plusieurs champs calculés qui se répetent sur
| les différentes requétes
| je voudrais créer une fonction pour chaque champ calculé afin que cette
| foction soit réutilisable
| exemple simple
| je concatene le nom le prénom et l'age d'une personne
| je voudrais crééer la fonction 'Prospects'
| function Prospects () as string
| prospects=nom & " " & prénom & " " & age
| end function


elle presque complète ta fonction...
à condition de renseigner les champs entre les parenthèses
et de t'adresser a ces variables dans ta fonction...



| ceci sans passer les paramètres mais en faisant référence aux éléments de la
| table de ma requète ex: me.nom me.prénom me.age


Me.Nom ne fait pas référence à une table... "Me" représente l'instance en cours
du formulaire ou de l'état dans lequel tu exécute le code;


Dans un module général (onglet Module)

Function fnProspect ( strNom, strPrenom, strAge) as string
fnProspect = strNom & " " & strPrenom & " " & strAge
End function


et dans la requete, tu fait un champ calculé:

Prospect: fnProspect(Nom,Prénom,Age)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw




Avatar
3stone
Salut,

"Pierre chevalier"
| Ok, j'utilise couramment cette façon de faire,

J'en doute sincerement, vu la demande ;-))


| mais je voudrais donner à l'utilisateur la possiblité de ne pas saisir
| Prospect: fnProspect(Nom,Prénom,Age)
| mais seulement
| Prospect: fnProspect()
| pour éviter qu'il se trompe, car j'utilise Access pour acceder de façon plus
| conviviale à une base de données Mysql où les noms de champs sont du genre
| 'nom_00_01'


Je crois que c'est un peu n'importe quoi cette question...


Pourquoi *l'utilisateur* devrait saisir " Prospect: fnProspect(Nom,Prénom,Age)"
si c'est toi qui crée l'application ??

Il ne saisi rien. La fonction se place dans la requête et les paramètres sont
des champs qui seront concaténés par la fonction!


Quant à saisir "seulement" Prospect: fnProspect() ou tout autre nom de fonction....
Bien sur qu'une fonction peut retourner des noms concatenés, mais à quoi
peut servir l'appel d'une fonction qui retournera toujours les mêmes valeurs ??
Autant le faire en dur, par programmation.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Pierre chevalier
il ne faut pas toujours douter de ce que d'autres font!!!, il faut rester un
peu modeste, je pourrais peut être vous en apprendre et cela serait avec
plaisir et par pur professionnalisme.
si je pose la question c'est que j'en ai vraiment besoin, ce n'est pas du
n'importe quoi
la fonction ne retournera pas toujours les mème infos car elle sera activée
à chaque enregistrement
je veux simplement éviter à un utilisateur de faire des erreurs dans la saisie
les requètes sont écrites par les utilisateurs, je veux simplement leur
facilité l'utilisation d'Access. je n'ai pas de valeur ajoutée à reproduire
de telle requète
c'est un plus pour un utilisateur de manipuler plus aisément access
j'espère que cette fois vous avez compris la question si non laissez
d'autres personnes y répondre dans la mesure où il y a une solution

Merci de votre aide


Salut,

"Pierre chevalier"
| Ok, j'utilise couramment cette façon de faire,

J'en doute sincerement, vu la demande ;-))


| mais je voudrais donner à l'utilisateur la possiblité de ne pas saisir
| Prospect: fnProspect(Nom,Prénom,Age)
| mais seulement
| Prospect: fnProspect()
| pour éviter qu'il se trompe, car j'utilise Access pour acceder de façon plus
| conviviale à une base de données Mysql où les noms de champs sont du genre
| 'nom_00_01'


Je crois que c'est un peu n'importe quoi cette question...


Pourquoi *l'utilisateur* devrait saisir " Prospect: fnProspect(Nom,Prénom,Age)"
si c'est toi qui crée l'application ??

Il ne saisi rien. La fonction se place dans la requête et les paramètres sont
des champs qui seront concaténés par la fonction!


Quant à saisir "seulement" Prospect: fnProspect() ou tout autre nom de fonction....
Bien sur qu'une fonction peut retourner des noms concatenés, mais à quoi
peut servir l'appel d'une fonction qui retournera toujours les mêmes valeurs ??
Autant le faire en dur, par programmation.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw




Avatar
3stone
re,

"Pierre chevalier"
| il ne faut pas toujours douter de ce que d'autres font!!!, il faut rester un
| peu modeste, je pourrais peut être vous en apprendre et cela serait avec
| plaisir et par pur professionnalisme.


A la façon dont tu as poser la question, tu ne fait pas douter que moi

:o)



| la fonction ne retournera pas toujours les mème infos car elle sera activée
| à chaque enregistrement


Dans ce cas, dis moi comme la fonction peut "deviner" de quel
enregistrement elle doit retourner les données, hein ?

Il faudrait pour le moins lui passer l'identifiant de l'enregistrement
et dans la fonction aller "pêcher" cela dans la table...
alors tout est déjà dans la requête!!!

Si tu arrive à m'expliquer à quoi tu pense, mais je doute, malgré ta tirade ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw