IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

VBA Access Discussion :

Afficher des dates par défaut


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Par défaut Afficher des dates par défaut
    Bonjour,

    Je ne sais pas si je poste dans le bon forum, au quel cas redirigez-moi.
    Voilà mon problème :
    Sur la miniature jointe, j'ai 2 zones de texte indépendantes dans lesquelles se trouvent des dates (période de consultation). Mon souci est que j'aimerais que les dates par défaut soient celle de l'exercice en cours 12 mois (du 01 aout au 31/juillet) :
    - si date d'aujourd'hui est > au 01/08 de l'année en cours N, alors affichage date 1 = 01/08/N à date 2=aujourd'hui
    - si date d'aujourd'hui est < au 01/08 de l'année en cours N, alors affichage date 1 = 01/08/N-1 et date 2 = aujourd'hui.

    Ces zones de texte qui abritent les dates ont un évènement sur perte focus du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Date1_LostFocus()
    Me.camensuel2_sous_formulaire.Requery
    Me.essai_sous_formulaire.Requery
    Me.essaimoymens_sous_formulaire.Requery
     
    End Sub
    Cela est-il possible sans supprimer le code déjà présent ?

    Merci par avance

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Un exemple de code à mettre dans l'événement Sur Chargement du formulaire.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Form_Load()
    Dim dtDate As Date
     
    dtDate = Date
    If dtDate > DateSerial(Year(dtDate), 7, 31) Then
       Me.txtDateDu = DateSerial(Year(dtDate), 8, 1)
    Else
       Me.txtDateDu = DateSerial(Year(dtDate) - 1, 8, 1)
    End If
    Me.txtDateAu = dtDate
    End Sub
    txtDateDu et txtDateAu sont les zones de textes des dates de début et fin de période.

    A+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Par défaut
    Bnjour et merci !

    Cela fonctionne, exemple : en ouvrant aujourd'hui mon appli, j'avais bien en date de début 01/08/2007 et la date d'aujourd'hui !
    Euh...j'abuse si je demande à ce que la date de fin soit 31/07/N de l'année en cours si date d'aujourd'hui < 01/08 et date fin = 31/07/N+1 si date d'aujourd'hui > 01/08...
    J'ai essayé de reprendre le code que tu m'as donné mais tu te doutes bien que j'ai du mal l'utiliser et çe ne fonctionne pas.

    Cependant, je ne peux plus sélectionner moi-même une période de consult, du moins si, je peux changer le date de début et la date de fin mais ça n'affiche plus les info correspondant à ces périodes ! (exemple je veux consulter sur un mois ou une période antérieure bah...ça ne change plus mes infos). en fait ça a supprimé mes codes sur perte focus que j'avais sur les zones de texte qui abritaient mes dates. Peut-être est-ce normal et préférable, je ne sais guère...

    Que faire ?

  4. #4
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    La fonction DateSerial(Année, Mois, Jour) renvoie la date correspondant à Jour/Mois/Année.
    Si tu veux la date de fin de période au lieu de la date du jour :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Form_Load()
    Dim dtDate As Date
     
    dtDate = txtDate
    If dtDate > DateSerial(Year(dtDate), 7, 31) Then
       Me.txtDateDu = DateSerial(Year(dtDate), 8, 1)
       Me.txtDateAu = DateSerial(Year(dtDate) + 1, 7, 31)
    Else
       Me.txtDateDu = DateSerial(Year(dtDate) - 1, 8, 1)
       Me.txtDateAu = DateSerial(Year(dtDate), 7, 31)
    End If
    End Sub
    Ce code est à mettre dans l'événement Sur Chargement du formulaire.
    A l'ouverture du formulaire les deux champs dates auront les dates de début et fin de la période en cours. Il n'est exécuté qu'une seule fois.

    Tu laisses le code (celui qui fait un .Requery sur les sous-formulaires) que tu avais pour les deux zones de textes contenant tes dates.

    A+

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Par défaut
    Merci pour ta réponse.

    Je fais les modif nécessaires et te tiens au courant.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Par défaut
    Impec ! Merci.
    Par contre, quand j'ouvre mon form (mes dates étant celles voulues 01/08 au 31/07), les infos affichées ne sont pas automatiquement fonction de cette période, malgré les code sur perte focus (.requery etc..).
    Il faut que, une fois ouvert, je mette mon form en mode crétion puis que je le passe en mode consult pour que s'opèrent les changement ...

Discussions similaires

  1. afficher la règle de transparence des couches par défaut?
    Par a666a666 dans le forum IGN API Géoportail
    Réponses: 5
    Dernier message: 25/01/2011, 20h54
  2. [VxiR2] Filtrer des dates par défaut
    Par beheretxea dans le forum Deski
    Réponses: 2
    Dernier message: 28/04/2009, 14h10
  3. [AC-2003] afficher "non vendu" par défaut malgré format date
    Par asus180 dans le forum Modélisation
    Réponses: 3
    Dernier message: 20/04/2009, 23h26
  4. [MFC] Affichage des Scroll par défaut
    Par Kevgeii dans le forum MFC
    Réponses: 2
    Dernier message: 05/02/2004, 20h44
  5. [PostgreSQL] Date par défaut
    Par PoY dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/11/2003, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo