OVH Cloud OVH Cloud

pb sous form continu

8 réponses
Avatar
Christophe
Bonjour;

Mon probl=E8me est le suivant :
j'ai un champ 'mois" sur un sous form en mode continu
dans ce champ figure le n=B0du mois et non le mois
(1 pour janvier, 2 pour f=E9vrier, etc...)

Je souhaitais donc que le champ me renvoi le nom complet du mois.
J'ai essay=E9 plusieurs solutions mais seul le premier enregistrement
m'affiche le mois en lettre
tel que je le souhaite, pas les suivants qui ont gard=E9 les nombres...
je tente donc de faire une boucle de 1 =E0 n (n est la valeur max de ma
cl=E9 primaire) pour effectuer
la mise =E0 jour pour chaque valeur de n... en vain !

Comment donc proc=E9der ?...
merci d'avance pour vos lumi=E8res

8 réponses

Avatar
Vuillermet Jacques
Pourquoi ne pas utiliser une zone de liste modifiable ?

Avec les propriétés suivantes :
- Source contrôle = le champ Mois (sous forme du numéro) ;
- Origine source = Liste valeurs
- Contenu = 1;janvier;2;fevrier;...
- Colonne liée = 1
- Nbre colonnes = 2

Jacques.


"Christophe" a écrit dans le message de news:

Bonjour;

Mon problème est le suivant :
j'ai un champ 'mois" sur un sous form en mode continu
dans ce champ figure le n°du mois et non le mois
(1 pour janvier, 2 pour février, etc...)

Je souhaitais donc que le champ me renvoi le nom complet du mois.
J'ai essayé plusieurs solutions mais seul le premier enregistrement
m'affiche le mois en lettre
tel que je le souhaite, pas les suivants qui ont gardé les nombres...
je tente donc de faire une boucle de 1 à n (n est la valeur max de ma
clé primaire) pour effectuer
la mise à jour pour chaque valeur de n... en vain !

Comment donc procéder ?...
merci d'avance pour vos lumières
Avatar
Christophe
Bonsoir Jacques,

En lisant ton post, je me suis demandé pourquoi je n'y avais pas
pensé.
Toutefois en refaisant la manip avec une zone de liste, je me suis
souvenu que je l'avais testé.
Et là, je suis obligé de mettre un critère qui, s'il se référe à
la table, m'affiche
tous les mois d'un coup dans chqaue champs zone de liste, et, s'il se
référe au sous form lui-même, ne m'affiche rien du tout.
N'y a-t-il pas une astuce vb pour obtenir ce que je veux sur tous les
enregistrements et
pas seulement au premier qui, je pense, doit être celui qui est
sélectionné par défaut ?

PS : les donnés du sous-form ne sont pas modifiables par
l'utilisateur. Mais dans le cas contraire, le résultat est tout de
même identique...
Merci tout de même...



Pourquoi ne pas utiliser une zone de liste modifiable ?

Avec les propriétés suivantes :
- Source contrôle = le champ Mois (sous forme du numéro) ;
- Origine source = Liste valeurs
- Contenu = 1;janvier;2;fevrier;...
- Colonne liée = 1
- Nbre colonnes = 2

Jacques.


Avatar
Christophe
re tout le monde, pour être plus explicite,
Voici mon code :

Dim I As Integer
Dim n As Integer

n = DMax("[RefAppel]", "tbl_APPEL")

For I = 1 To n Step 1
DoCmd.GoToRecord , , acNext
If Me.Mois = "1" Then Me.Mois = "Jan"
If Me.Mois = "2" Then Me.Mois = "Fév"
If Me.Mois = "3" Then Me.Mois = "Mar"
If Me.Mois = "4" Then Me.Mois = "Avr"
If Me.Mois = "5" Then Me.Mois = "Mai"
If Me.Mois = "6" Then Me.Mois = "Jun"
If Me.Mois = "7" Then Me.Mois = "Jul"
If Me.Mois = "8" Then Me.Mois = "Aou"
If Me.Mois = "9" Then Me.Mois = "Sep"
If Me.Mois = "10" Then Me.Mois = "Oct"
'If Me.Mois = "11" Then Me.Mois = "Nov"
If Me.Mois = "12" Then Me.Mois = "Déc"
Me.Form.Requery
Next I

j'obtiens toujours la modif sur le premier enregistrement et pas sur
les autres...v foutre l'ordi par la fenêtre et moi avec !!!
Avatar
Eric
Bonsoir,

Pourquoi dans la requête sous-jacente du sous-formulaire ne pas mettre
un champ calculé
LeMoisEnLettre: MonthName([LeMois]) où LeMois est le champ contenant les
valeurs 1 à 12
et afficher ce champ dans le sous-formulaire ?

Je crois que la fonction MonthName() n'est disponible qu'à partir de A2K.

re tout le monde, pour être plus explicite,
Voici mon code :

Dim I As Integer
Dim n As Integer

n = DMax("[RefAppel]", "tbl_APPEL")

For I = 1 To n Step 1
DoCmd.GoToRecord , , acNext
If Me.Mois = "1" Then Me.Mois = "Jan"
If Me.Mois = "2" Then Me.Mois = "Fév"
If Me.Mois = "3" Then Me.Mois = "Mar"
If Me.Mois = "4" Then Me.Mois = "Avr"
If Me.Mois = "5" Then Me.Mois = "Mai"
If Me.Mois = "6" Then Me.Mois = "Jun"
If Me.Mois = "7" Then Me.Mois = "Jul"
If Me.Mois = "8" Then Me.Mois = "Aou"
If Me.Mois = "9" Then Me.Mois = "Sep"
If Me.Mois = "10" Then Me.Mois = "Oct"
'If Me.Mois = "11" Then Me.Mois = "Nov"
If Me.Mois = "12" Then Me.Mois = "Déc"
Me.Form.Requery
Next I

j'obtiens toujours la modif sur le premier enregistrement et pas sur
les autres...v foutre l'ordi par la fenêtre et moi avec !!!



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
.../...
Si Access97, voir la fonction équivalente sur le site de Jessy:
http://access.jessy.free.fr/htm/Equivalence/fMonthName.htm

...

Je crois que la fonction MonthName() n'est disponible qu'à partir de A2K.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Christophe
Bonjour Eric,

Je ne connaissais pas cette jolie instruction qu'est monthname ()
ça facilite grandement le remplacement du nombre du mois en lettre,
rien à dire...
... par contre, maintenant, il me met pour chaque enregistrement de mon
formulaire continu la valeur que mon champ a pris pour le premier...
c'est génant...
Je pense que je dois avoir un problème dans ma boucle qui ne se
réfère qu'au premier enregistrement et non pas à tous... je vais
continuer de chercher ...
Cette instruction est placée au niveau de l'ouverture de mon sous form
continu... peut-ête devrais-je tenter de le mettre au niveau de
l'ouverture de mon form sur lequel il est placé?... vais essayé
Si tu as un tuyau, je suis preneur,
merci encore...

PS : access2003 et la fonction de Jessy ne m'apporte rien de plus...
snif et c'est pas facile sur le rebord de la fenêtre... :)


.../...
Si Access97, voir la fonction équivalente sur le site de Jessy:
http://access.jessy.free.fr/htm/Equivalence/fMonthName.htm

...

Je crois que la fonction MonthName() n'est disponible qu'à partir de A2K.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl= fr



Avatar
Eric
Bonjour,

As-tu essayé en utilisant la fonction MonthName dans une requête qui
serait la source de ton sous-formulaire, comme je te l'ai indiqué, car
dans ce cas-là, tu ne devrais plus avoir de problème et pas de code à
écrire ?


Bonjour Eric,

Je ne connaissais pas cette jolie instruction qu'est monthname ()
ça facilite grandement le remplacement du nombre du mois en lettre,
rien à dire...
... par contre, maintenant, il me met pour chaque enregistrement de mon
formulaire continu la valeur que mon champ a pris pour le premier...
c'est génant...


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Christophe
Bonjour Eric,

J'ai réalisé une requête en modifiant ma source avec la fonction
MonthName
Effectivement cela fonctionne parfaitement, merci pour ton aide
c'est quand même beaucoup plus lisible...
merci encore



Bonjour,

As-tu essayé en utilisant la fonction MonthName dans une requête qui
serait la source de ton sous-formulaire, comme je te l'ai indiqué, car
dans ce cas-là, tu ne devrais plus avoir de problème et pas de code à
écrire ?


Bonjour Eric,

Je ne connaissais pas cette jolie instruction qu'est monthname ()
ça facilite grandement le remplacement du nombre du mois en lettre,
rien à dire...
... par contre, maintenant, il me met pour chaque enregistrement de mon
formulaire continu la valeur que mon champ a pris pour le premier...
c'est génant...


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl= fr