Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre du Club
    Comportement d'une étiquette/logo en fonction de la valeur d'un autre champ
    Bonjour à tous,

    Je fait appel à vous au sujet d'un petit code que je n'arrive pas à faire fonctionner, je souhaite faire apparaitre "ou non" une étiquette (image) au sein de mon formulaire en fonction de la valeur d'un champ situé dans un autre formulaire.

    J'ai l'impression que ca ne veux pas fonctionner quand le champ appelé se situe dans un autre formulaire, ecce possible de faire ce genre de chose ou cela fonctionne uniquement si tous mes élément se situe sur un et même formulaire ?

    Le champ à surveiller se trouve dans un formulaire nommé "Base", donc si la valeur du champ [NbreFichiers] est supérieur à zéro, alors mon étiquette nommé "logo" doit être visible, sinon invisible.

    Sans oublier que le champ que je veux surveiller [NbreFichiers] peut évoluer, j'ai donc mis mon code sur minuterie.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_Timer()
     
    If [Form]![Base]![NbreFichiers] > 0 Then
    Me.logo.Visible = True 
    Else
    Me.logo.Visible = False
    End If
    End Sub



    Je suppose que le code que j'envoie comportent pleins d'erreurs de syntaxe ?

    Cordialement,

  2. #2
    Expert éminent sénior
    bonjour,

    Je suppose que le code que j'envoie comportent pleins d'erreurs de syntaxe ?
    non juste une seule erreur, comme dans ta dernière phrase
    il faut mettre Forms![Base] car il s'agit de la collection des formulaires
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  3. #3
    Membre du Club
    Re
    Bonjour tee_grandbois,

    D'abord merci pour ton aide et donc j'ai suivi ton conseil et corrigé ma faute mais ca ne fonctionne toujours pas.
    Il y à peut-être quelques paramètres à préciser pour que tu puissent réellement comprendre le dérouler.

    Voici donc mon code actuel :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_Timer()
     
    If Forms![Base]![Nmbrefichier] > 0 Then
    Me.logo.Visible = True
    Else
    Me.logo.Visible = False
    End If
    End Sub


    La configuration est la suivante :

    J'ai dans mon formulaire [Base] un champ nommé [Nmbrefichier] qui à pour but de compter le nombre de fichier contenu dans un dossier cible situé dans mon ordinateur.
    Une fois qu'il à fait son boulot, il m'affiche donc un résultat et ca fonctionne assez bien.

    Maintenant dans mon formulaire [Menu_S] ou se trouve mon fameux logo à afficher ou non selon la valeur du champ situé dans le menu [Base].

    Je ne vais pas répéter ce que j'ai déjà dit dans mon ancien message au risque de me reprendre ou aggraver le nombre de fautes d'orthographes


    Si pour toi le code corrigé devrais fonctionner, alors un paramètre m'échappe peut-être.

    Cordialement,

  4. #4
    Expert éminent sénior
    bonjour Marionette,
    Je ne vais pas répéter ce que j'ai déjà dit dans mon ancien message au risque de me reprendre ou aggraver le nombre de fautes d'orthographes
    pas besoin :
    Il y à a peut-être quelques paramètres à préciser pour que tu puissents réellement comprendre le dérouleré.
    Si pour toi le code corrigé devraist fonctionner, alors un paramètre m'échappe peut-être.
    le Timer fonctionne avec un valeur d'intervalle de temps qui doit être différent de 0: c'est la propriété "Intervalle minuterie", la valeur 1000 équivaut à 1 seconde, donc 30000 déclenchera l'évènement Form_Timer toutes les 30 secondes
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  5. #5
    Membre du Club
    Re
    tee_grandbois,

    Oui j'ai bien compris le principe du "timer" et je l'ai réglé sur 1000 soit 1 seconde.

    Tu as l'air plus excité par mes fautes d'orthographe que par mon projet donc....

  6. #6
    Expert éminent sénior
    Tu as l'air plus excité par mes fautes d'orthographe que par mon projet donc....
    à quel moment ai-je montré des signes d'excitation ?
    Oui j'ai bien compris le principe du "timer" et je l'ai réglé sur 1000 soit 1 seconde.
    j'ai testé ton code et je n'ai pas ce problème... Comment est mis à jour le champ Nmbrefichier ?
    Si tu as la possibilité de mettre une copie de ta base à disposition sans données confidentielles, je n'ai rien contre
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  7. #7
    Membre du Club
    tee_grandbois,

    Voici une copie de ma BDD.

    Je te suggère de crée un dossier Windows en crée un fichier .txt nommée "Frzkaci" puis d'indiquer le chemin du dossier dans le formulaire approprié, tu peux également passer directement par la table.

    Au passage je remarque un petit bug lorsqu'il n'y à plus de fichier dans le dossier correspondant à mon critère, mon champ à tendance à disparaitre au lieu d'afficher "0" mais c'est pas très méchant non plus.



    Cordialement,

  8. #8
    Expert éminent sénior
    le champ s'appelle NbreFichiers dans Base et tu testes Nmbrefichier dans Menu_S donc cela provoque une erreur 2465 (Acces ne trouve pas le champ <<Nmbrefichier>> auquel il est fait référence dans votre expression) ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  9. #9
    Expert éminent sénior
    Au passage je remarque un petit bug lorsqu'il n'y à plus de fichier dans le dossier correspondant à mon critère, mon champ à tendance à disparaitre au lieu d'afficher "0" mais c'est pas très méchant non plus.
    tu peux mettre ce code à la fin de Form_Timer
    Code VBA :Sélectionner tout -Visualiser dans une fenêtre à part
    Me.NbreFichiers = Nz(Me.NbreFichiers, 0)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  10. #10
    Membre du Club
    Re
    Mon dieu que je suis co***

    En effet ca fonctionne, à force d'essayer , encore et encore je finie par écrire n'importe quoi !
    Surtout que je suis au boulot je fait ca à la va vite !

    Tu as constatée comme moi le bug du champ qui disparait quand tu supprime le fichier .txt que tu à crée ou tu n'es pas allé jusque la ?
    A mon avis c'est l'effet que j'ai voulu donner de clignotement qui provoque ce bug non ?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Me![NbreFichiers].Visible = Not Me![NbreFichiers].Visible

  11. #11
    Membre du Club
    Citation Envoyé par tee_grandbois Voir le message
    tu peux mettre ce code à la fin de Form_Timer
    Code VBA :Sélectionner tout -Visualiser dans une fenêtre à part
    Me.NbreFichiers = Nz(Me.NbreFichiers, 0)
    Re,

    Alors pour le code que tu ma conseillé en fin de code ça na pas résolue mon problème mais j'ai identifiée ce qui provoquait cela et c'est tout bête.
    Enfaite étant donné que mon champ clignote toutes les 1 secondes.. si au moment ou le comptage passe à zéro le champ est visible, alors le champ est apparent, et à l’inverse si le champ été invisible au moment ou le comptage passe à zéro alors le champ reste invisible.

    Je vais donc retirer cette option certes inutile mais j'aime bien quand ça clignote surtout en approche de noël.

    Merci en tout cas

    Cordialement,

###raw>template_hook.ano_emploi###