Bonjour,
J'ai dans un formulaire, une zone de texte qui affiche le=20
nombre de jours restant avant la f=EAte de quelqu'un. Code=20
VBA qui est accessible sur le site de Raymond.=20
Je voudrais pouvoir trier mes enregistrements par ce=20
nombre, mais =E9tant donn=E9 que c'est une zone de texte qui=20
ne d=E9pend pas directement d'une table, je ne peux pas.
J'ai donc pens=E9 l'appel=E9 dans une requ=EAte, mais je ne sais=20
pas comment.=20
Si vous avez la solution pour la requ=EAte ou une autre=20
solution qui arrive au m=EAme r=E9sultat...
Merci,
Antoine
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonsoir Antoine.
La fonction NbJoursAvantAnniversaire retourne une donnée de type integer. dans une requête le champ calculé sera conservé en integer. si tu retrouves cette donnée en texte, il faut convertir ton champ en integer par Int(Monchamp) si tu as mis la valeur retournée dans un contrôle texte d'un formulaire, tu peux définir le format numérique. Pour récupérer la valeur retournée dans une requête dans une colonne tu indiques: MesJours: NbJoursAvantAnniversaire([DateNaissance])
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine" a écrit dans le message de news:b98801c47985$c4e3a100$ Bonjour, J'ai dans un formulaire, une zone de texte qui affiche le nombre de jours restant avant la fête de quelqu'un. Code VBA qui est accessible sur le site de Raymond.
Je voudrais pouvoir trier mes enregistrements par ce nombre, mais étant donné que c'est une zone de texte qui ne dépend pas directement d'une table, je ne peux pas.
J'ai donc pensé l'appelé dans une requête, mais je ne sais pas comment.
Si vous avez la solution pour la requête ou une autre solution qui arrive au même résultat... Merci, Antoine
Bonsoir Antoine.
La fonction NbJoursAvantAnniversaire retourne une donnée de type integer.
dans une requête le champ calculé sera conservé en integer.
si tu retrouves cette donnée en texte, il faut convertir ton champ en
integer par Int(Monchamp)
si tu as mis la valeur retournée dans un contrôle texte d'un formulaire, tu
peux définir le format numérique.
Pour récupérer la valeur retournée dans une requête dans une colonne tu
indiques:
MesJours: NbJoursAvantAnniversaire([DateNaissance])
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:b98801c47985$c4e3a100$a401280a@phx.gbl...
Bonjour,
J'ai dans un formulaire, une zone de texte qui affiche le
nombre de jours restant avant la fête de quelqu'un. Code
VBA qui est accessible sur le site de Raymond.
Je voudrais pouvoir trier mes enregistrements par ce
nombre, mais étant donné que c'est une zone de texte qui
ne dépend pas directement d'une table, je ne peux pas.
J'ai donc pensé l'appelé dans une requête, mais je ne sais
pas comment.
Si vous avez la solution pour la requête ou une autre
solution qui arrive au même résultat...
Merci,
Antoine
La fonction NbJoursAvantAnniversaire retourne une donnée de type integer. dans une requête le champ calculé sera conservé en integer. si tu retrouves cette donnée en texte, il faut convertir ton champ en integer par Int(Monchamp) si tu as mis la valeur retournée dans un contrôle texte d'un formulaire, tu peux définir le format numérique. Pour récupérer la valeur retournée dans une requête dans une colonne tu indiques: MesJours: NbJoursAvantAnniversaire([DateNaissance])
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine" a écrit dans le message de news:b98801c47985$c4e3a100$ Bonjour, J'ai dans un formulaire, une zone de texte qui affiche le nombre de jours restant avant la fête de quelqu'un. Code VBA qui est accessible sur le site de Raymond.
Je voudrais pouvoir trier mes enregistrements par ce nombre, mais étant donné que c'est une zone de texte qui ne dépend pas directement d'une table, je ne peux pas.
J'ai donc pensé l'appelé dans une requête, mais je ne sais pas comment.
Si vous avez la solution pour la requête ou une autre solution qui arrive au même résultat... Merci, Antoine
Antoine
Merci de votre aide, je vais essayer un peu plus tard.
ce que je ne comprends pas, c'est que la fonction NbJoursAvantAnniversaire est dans un code VBA pour un formulaire. Lorsque je vais créer la requête, Access va reconnaître NbJoursAvantAnniversaire à partir de la fonction VBA du formulaire?
Merci, Antoine
Merci de votre aide, je vais essayer un peu plus tard.
ce que je ne comprends pas, c'est que la fonction
NbJoursAvantAnniversaire est dans un code VBA pour un
formulaire.
Lorsque je vais créer la requête, Access va reconnaître
NbJoursAvantAnniversaire à partir de la fonction VBA du
formulaire?
Merci de votre aide, je vais essayer un peu plus tard.
ce que je ne comprends pas, c'est que la fonction NbJoursAvantAnniversaire est dans un code VBA pour un formulaire. Lorsque je vais créer la requête, Access va reconnaître NbJoursAvantAnniversaire à partir de la fonction VBA du formulaire?
Merci, Antoine
Raymond [mvp]
la fonction est à placer dans un module standard et non dans un formulaire, comme toutes les fonctions de ce site, pour être accessible par tous les objets y compris les requêtes.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine" a écrit dans le message de news:ba8b01c4798a$aa9907e0$ Merci de votre aide, je vais essayer un peu plus tard.
ce que je ne comprends pas, c'est que la fonction NbJoursAvantAnniversaire est dans un code VBA pour un formulaire. Lorsque je vais créer la requête, Access va reconnaître NbJoursAvantAnniversaire à partir de la fonction VBA du formulaire?
Merci, Antoine
la fonction est à placer dans un module standard et non dans un formulaire,
comme toutes les fonctions de ce site, pour être accessible par tous les
objets y compris les requêtes.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:ba8b01c4798a$aa9907e0$a501280a@phx.gbl...
Merci de votre aide, je vais essayer un peu plus tard.
ce que je ne comprends pas, c'est que la fonction
NbJoursAvantAnniversaire est dans un code VBA pour un
formulaire.
Lorsque je vais créer la requête, Access va reconnaître
NbJoursAvantAnniversaire à partir de la fonction VBA du
formulaire?
la fonction est à placer dans un module standard et non dans un formulaire, comme toutes les fonctions de ce site, pour être accessible par tous les objets y compris les requêtes.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine" a écrit dans le message de news:ba8b01c4798a$aa9907e0$ Merci de votre aide, je vais essayer un peu plus tard.
ce que je ne comprends pas, c'est que la fonction NbJoursAvantAnniversaire est dans un code VBA pour un formulaire. Lorsque je vais créer la requête, Access va reconnaître NbJoursAvantAnniversaire à partir de la fonction VBA du formulaire?
Merci, Antoine
Antoine
Rebonjour, Et remerci pour vos réponses. J'ai cependant un problème pour intégrer la fonction dans la requête. Je vais vous donner l'exemple avec la fonction "Age".
J'ai essayé d'entrer la fonction "Age" pour l'avoir dans un requête. J'ai fait un module "Age" , avec votre code VBA. Dans ma requête j'ai mis les champs 'DateNaissance' et 'Prénom', et comme toisième: Age: Age([DateNaissance];Date())
Lorsque je veux aller en mode de données, Il y a ce message d'erreur: Fonction 'Age' non définie dans l'expression Et ce que je mette 'Public Function' ou 'Function'
---------------------------------- Public Function Age(DateNaissance As Date, CeJour As Date) As Integer ' Renvoie l'Age en années dans une fourchette de deux dates. ' N'accepte pas les fourchettes négatives. Par exemple, DateNaissance > CeJour If Month(CeJour) < Month(DateNaissance) Or (Month (CeJour) = Month(DateNaissance) And Day(CeJour) < Day (DateNaissance)) Then Age = Year(CeJour) - Year(DateNaissance) - 1 Else [Age = Year(CeJour) - Year(DateNaissance)] End If End Function -----------------------------------
Merci, Antoine
Rebonjour,
Et remerci pour vos réponses.
J'ai cependant un problème pour intégrer la fonction dans
la requête. Je vais vous donner l'exemple avec la
fonction "Age".
J'ai essayé d'entrer la fonction "Age" pour l'avoir dans
un requête.
J'ai fait un module "Age" , avec votre code VBA.
Dans ma requête j'ai mis les champs 'DateNaissance'
et 'Prénom', et comme toisième:
Age: Age([DateNaissance];Date())
Lorsque je veux aller en mode de données, Il y a ce
message d'erreur: Fonction 'Age' non définie dans
l'expression
Et ce que je mette 'Public Function' ou 'Function'
----------------------------------
Public Function Age(DateNaissance As Date, CeJour As Date)
As Integer
' Renvoie l'Age en années dans une fourchette de deux
dates.
' N'accepte pas les fourchettes négatives. Par
exemple, DateNaissance > CeJour
If Month(CeJour) < Month(DateNaissance) Or (Month
(CeJour) = Month(DateNaissance) And Day(CeJour) < Day
(DateNaissance)) Then
Age = Year(CeJour) - Year(DateNaissance) - 1
Else
[Age = Year(CeJour) - Year(DateNaissance)]
End If
End Function
-----------------------------------
Rebonjour, Et remerci pour vos réponses. J'ai cependant un problème pour intégrer la fonction dans la requête. Je vais vous donner l'exemple avec la fonction "Age".
J'ai essayé d'entrer la fonction "Age" pour l'avoir dans un requête. J'ai fait un module "Age" , avec votre code VBA. Dans ma requête j'ai mis les champs 'DateNaissance' et 'Prénom', et comme toisième: Age: Age([DateNaissance];Date())
Lorsque je veux aller en mode de données, Il y a ce message d'erreur: Fonction 'Age' non définie dans l'expression Et ce que je mette 'Public Function' ou 'Function'
---------------------------------- Public Function Age(DateNaissance As Date, CeJour As Date) As Integer ' Renvoie l'Age en années dans une fourchette de deux dates. ' N'accepte pas les fourchettes négatives. Par exemple, DateNaissance > CeJour If Month(CeJour) < Month(DateNaissance) Or (Month (CeJour) = Month(DateNaissance) And Day(CeJour) < Day (DateNaissance)) Then Age = Year(CeJour) - Year(DateNaissance) - 1 Else [Age = Year(CeJour) - Year(DateNaissance)] End If End Function -----------------------------------
Merci, Antoine
3stone
Salut,
"Antoine" J'ai essayé d'entrer la fonction "Age" pour l'avoir dans un requête. J'ai fait un module "Age" , avec votre code VBA. Dans ma requête j'ai mis les champs 'DateNaissance' et 'Prénom', et comme toisième: Age: Age([DateNaissance];Date())
Lorsque je veux aller en mode de données, Il y a ce message d'erreur: Fonction 'Age' non définie dans l'expression
Ne pas créer un champ (même calculé) du même nom qu'une fonction! Pour éviter cela, prend l'habitude de préfixer tes fonctions par fn...
Donc ici: Public Function fnAge(....)
Et ce que je mette 'Public Function' ou 'Function'
Choux vert et vert choux.... Si tu mets 'Function' elle est considérée publique.
---------------------------------- Public Function fnAge(DateNaissance As Date, CeJour As Date) As Integer
Dans ta requête, cela devient:
Age: fnAge([DateNaissance];Date())
Mais, je présume que tu as placer la fonction dans un module standard (onglet Module) ??
Et là, attention aussi !! Lorsque tu sauve un module, veille à ne pas le nommer du même nom qu'une fonction qu'il contient. Pas de module "Age" qui contient une fonction "Age" Encore une fois, préfixe les noms de modules, avec par exemple "mod", ce qui donne:
modAge ou modCalculSurDate si tu rassemble les fonctions par theme.
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Salut,
"Antoine"
J'ai essayé d'entrer la fonction "Age" pour l'avoir dans
un requête.
J'ai fait un module "Age" , avec votre code VBA.
Dans ma requête j'ai mis les champs 'DateNaissance'
et 'Prénom', et comme toisième:
Age: Age([DateNaissance];Date())
Lorsque je veux aller en mode de données, Il y a ce
message d'erreur: Fonction 'Age' non définie dans
l'expression
Ne pas créer un champ (même calculé) du même nom qu'une fonction!
Pour éviter cela, prend l'habitude de préfixer tes fonctions par fn...
Donc ici: Public Function fnAge(....)
Et ce que je mette 'Public Function' ou 'Function'
Choux vert et vert choux....
Si tu mets 'Function' elle est considérée publique.
----------------------------------
Public Function fnAge(DateNaissance As Date, CeJour As Date) As Integer
Dans ta requête, cela devient:
Age: fnAge([DateNaissance];Date())
Mais, je présume que tu as placer la fonction dans un
module standard (onglet Module) ??
Et là, attention aussi !! Lorsque tu sauve un module,
veille à ne pas le nommer du même nom qu'une fonction
qu'il contient.
Pas de module "Age" qui contient une fonction "Age"
Encore une fois, préfixe les noms de modules, avec
par exemple "mod", ce qui donne:
modAge ou modCalculSurDate si tu rassemble les
fonctions par theme.
--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
"Antoine" J'ai essayé d'entrer la fonction "Age" pour l'avoir dans un requête. J'ai fait un module "Age" , avec votre code VBA. Dans ma requête j'ai mis les champs 'DateNaissance' et 'Prénom', et comme toisième: Age: Age([DateNaissance];Date())
Lorsque je veux aller en mode de données, Il y a ce message d'erreur: Fonction 'Age' non définie dans l'expression
Ne pas créer un champ (même calculé) du même nom qu'une fonction! Pour éviter cela, prend l'habitude de préfixer tes fonctions par fn...
Donc ici: Public Function fnAge(....)
Et ce que je mette 'Public Function' ou 'Function'
Choux vert et vert choux.... Si tu mets 'Function' elle est considérée publique.
---------------------------------- Public Function fnAge(DateNaissance As Date, CeJour As Date) As Integer
Dans ta requête, cela devient:
Age: fnAge([DateNaissance];Date())
Mais, je présume que tu as placer la fonction dans un module standard (onglet Module) ??
Et là, attention aussi !! Lorsque tu sauve un module, veille à ne pas le nommer du même nom qu'une fonction qu'il contient. Pas de module "Age" qui contient une fonction "Age" Encore une fois, préfixe les noms de modules, avec par exemple "mod", ce qui donne:
modAge ou modCalculSurDate si tu rassemble les fonctions par theme.
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Antoine
Merci énormément Antoine
Je savais que ce n'était pas trop bon de mettre les mêmes noms, mais pas à ce point! MErci encore Antoine
Merci énormément
Antoine
Je savais que ce n'était pas trop bon de mettre les mêmes
noms, mais pas à ce point!
MErci encore
Antoine