OVH Cloud OVH Cloud

Apparition d'étiquette

5 réponses
Avatar
sab
Bonjour,

J'ai quelques soucis avec l'apparition d'étiquettes dans un formulaire.
En effet, je souhaiterai introduire une étiquette 'X' qui apparait ou
disparait en fonction d'une date.

Sur mon état par le VBA - je n'ai aucun pb. Voici mon code :
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim ENTREE As Date
Dim MODIF As Date

MODIF = "14/12/2004"
ENTREE = Me.[Date d'entrée]
If ENTREE > MODIF Then Me.Nouveaux.Visible = True
Else Me.Nouveaux.Visible = False
End If
End Sub

Mais ça ne foncxtionne pas dans un formulaire ...
Pouvez vous m'expliquer pourquoi et comment résoudre ce pb?

Merci d'avance .

5 réponses

Avatar
Pierre CFI [mvp]
bonjour
sur quel évenement de ton form, mets tu ton code ??

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net

"sab" a écrit dans le message de news:
Bonjour,

J'ai quelques soucis avec l'apparition d'étiquettes dans un formulaire.
En effet, je souhaiterai introduire une étiquette 'X' qui apparait ou
disparait en fonction d'une date.

Sur mon état par le VBA - je n'ai aucun pb. Voici mon code :
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim ENTREE As Date
Dim MODIF As Date

MODIF = "14/12/2004"
ENTREE = Me.[Date d'entrée]
If ENTREE > MODIF Then Me.Nouveaux.Visible = True
Else Me.Nouveaux.Visible = False
End If
End Sub

Mais ça ne foncxtionne pas dans un formulaire ...
Pouvez vous m'expliquer pourquoi et comment résoudre ce pb?

Merci d'avance .


Avatar
Maxence HUBICHE
Hello sab,
Dim MODIF As Date
MODIF = "14/12/2004"


Beurk !!!
Une variable de type DATE à laquelle tu affectes un STRING !!!!

Il eut été préférable de la caster (CDATE)
ou encore (solution que je préfère) si ta date est constante utiliser DateSerial(2004,12,14)

Déjà, avec des choses comme cela, ton code serait plus propre, et aurait
plus de chances de fonctionner.

Ensuite, dans un formulaire, ce sera plutôt Form_Current qui devrait être
utilisé.
Enfin, si ton formulaire est en mode continu, ca ne marchera pas ... hélas.

Cordialement,

================== Maxence HUBICHE

MVP Access
Revendeur CaseStudio (http://www.casestudio.fr)
Responsable Access sur http://www.developpez.com
La plus grosse FAQ Access du Web : http://access.developpez.com/faq

Bonjour,

J'ai quelques soucis avec l'apparition d'étiquettes dans un
formulaire. En effet, je souhaiterai introduire une étiquette 'X' qui
apparait ou disparait en fonction d'une date.

Sur mon état par le VBA - je n'ai aucun pb. Voici mon code :
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim ENTREE As Date
Dim MODIF As Date
MODIF = "14/12/2004"
ENTREE = Me.[Date d'entrée]
If ENTREE > MODIF Then Me.Nouveaux.Visible = True
Else Me.Nouveaux.Visible = False
End If
End Sub

Mais ça ne foncxtionne pas dans un formulaire ...
Pouvez vous m'expliquer pourquoi et comment résoudre ce pb?
Merci d'avance .



Avatar
Raymond [mvp]
Bonjour.

il y a plusieurs erreurs de syntaxe dans tes fonctions.
1- en vba indiquer la date sous sa forme US avec des #
MODIF = #12/14/2004#
les guillemets ne sont pas conseillés malgré qu'ils ne provoquent pas
d'erreur à ce niveau avec une variable déclarée explicitement en date, mais
la date n'est pas prise en compte car elle n'est pas de format US
mm/dd/yyyy.
2- malgré que ce soit une étiquette il faut agir sur la propriété Caption et
non sur l'étiquette:
If ENTREE > MODIF Then Me.Nouveaux.Caption.Visible = True
Else Me.Nouveaux.Caption.Visible = False
End If


ça devrait faire avec tout ça.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Bonjour,

J'ai quelques soucis avec l'apparition d'étiquettes dans un formulaire.
En effet, je souhaiterai introduire une étiquette 'X' qui apparait ou
disparait en fonction d'une date.

Sur mon état par le VBA - je n'ai aucun pb. Voici mon code :
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim ENTREE As Date
Dim MODIF As Date

MODIF = "14/12/2004"
ENTREE = Me.[Date d'entrée]
If ENTREE > MODIF Then Me.Nouveaux.Visible = True
Else Me.Nouveaux.Visible = False
End If
End Sub

Mais ça ne foncxtionne pas dans un formulaire ...
Pouvez vous m'expliquer pourquoi et comment résoudre ce pb?

Merci d'avance .


Avatar
sab
Bonjour Raymond

Tout d'abord un grand merci pour l'ensemble de tes conseils...

Tu me proposes de faire
If ENTREE > MODIF Then Me.Nouveaux.Caption.Visible = True
Seulement ACCESS n'accepte pas CAption.visible, peut tu me dire, STP,

comment y remedier?

De plus, ce formulaire est en mode continu...Hors M. Maxence HUBICHE m'a
signalé que ça ne fonctionnerai pas...
Quel autre moyen, y a t il de faire apparaitre l'etiquette en fonction d'un
champs dans un formulaire en mode continu ?
Que me conseilles tu ?
MERCI

Avatar
Raymond [mvp]
Bonjour.

je t'ai raconté n'importe quoi. toutes mes excuses.

ça fonctionne bien dans un formulaire.
Nouveaux est bien le nom d'une étiquette ?

ta syntaxe est bonne mais les valeurs de tes variables ne sont sûrement pas
bonnes car pas dans le bon format . fais un débogage et vérifies les valeurs
fournies.
ce n'est pas que ça ne marchera pas, mais toutes les étiquettes affichées
vont disparaître ou réapparaître selon le valeur contenue dans
l'enregistrement actif.
vu que c'est une étiquette tu n'as pas la mise en forme conditionnelle.
si c'est possible, il est préférable de passer par un contrôle texte ,
présenté comme une étiquette, avec une mise en forme conditionnelle. par
exemple si la condition est juste tu peux afficher le contrôle gris sur gris
et ça fera disparaître le contrôle. si la condition est fausse tu affiches
noir sur gris ce qui fait ré-apparaître le contrôle. dans ce cas chaque
étiquette de chaque enregistrement prend la couleur de sa condition.
je ne sais pas si c'est bien clair tout ça ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Bonjour Raymond

Tout d'abord un grand merci pour l'ensemble de tes conseils...

Tu me proposes de faire
If ENTREE > MODIF Then Me.Nouveaux.Caption.Visible = True
Seulement ACCESS n'accepte pas CAption.visible, peut tu me dire, STP,

comment y remedier?

De plus, ce formulaire est en mode continu...Hors M. Maxence HUBICHE m'a
signalé que ça ne fonctionnerai pas...
Quel autre moyen, y a t il de faire apparaitre l'etiquette en fonction
d'un
champs dans un formulaire en mode continu ?
Que me conseilles tu ?
MERCI