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

IHM Discussion :

Afficher automatiquement le mois dans une zone texte en partant d'une date affichée automatiquement


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut Afficher automatiquement le mois dans une zone texte en partant d'une date affichée automatiquement
    Bonjour à tous et meilleurs voeux pour cette année 2010
    J'ai un formulaire de vente qui affiche automatiquement la date dans la zone texte "date"; Comment puis-je afficher automatiquement dans une autre zone texte appelée"mois" le mois correspondant à la date affichée?
    Je rappelle que je travaille avec Access 2000
    Pouvez-vous m'aider car je galère sur ce petit problème depuis 3 jours.
    Merci d'avance
    Sincères salutations
    Claudine

  2. #2
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    Bonjour,
    moi je travaille sous access 2007, mais je crois que la fonction marchera aussi chez toi.
    je suppose que la date qui s'affiche est de la forme jj/mm/aaaa
    dans ce cas la fonction à utiliser est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Mid(Me.txtDate.Value, 4,2)
    'est donc tu pourra récupérer le mois en chiffre
    maintenant, est ce que tu veut l'afficher en lettres?

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut Fonction Mois
    Bonjour,

    Dans la ligne Code source des propriétés du champ Mois écrire

    Merci pour les voeux et autant pour vous.
    Cordialement.

    RJ

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonsoir rjamin
    J'ai testé le code et il s'affiche erreur dans la zone texte
    Est-ce parce qu'il s'agit d'une date automatique?
    Par contre j'ai refait un tout petit programme avec une date que je tape dans le formulaire et le mois s'indique correctement dans la zone texte 'Mois' mais il y a un problème car ce mois ne s'enregistre pas dans la colonne'mois' de la table correspondante.
    Pouvez-vous m'aider à distance?
    Sincères remerciements
    Claudine

  5. #5
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    il s'affiche Erreur, je crois, par ce que ton formulaire est lié à une table. Dans ce cas tu ne peux afficher que les données qui existe dans cette table.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonsoir miamou,
    j'ai refait un tout petit programme avec une date que je tape dans le formulaire et le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Mois_Click()
    Mid(Me.txtDate.Value, 4,2)
     
    End Sub
    Malheureusement la zone texte'Mois' affiche "Erreur de synthaxe"
    Pouvez-vous adapter à access 2000?
    Sincères remerciements
    Claudine

  7. #7
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    Met plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.txtMois.value = Mid(Me.txtDate.Value, 4, 2)
    'txtMois c'et la zone de texte mois
    'txtDate c'est la zone de texte Date

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Rebonsoir miamou
    Avec le nouveau code, textDate est inconnu.
    J'ai donc modifié comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Date_Click()
    Me.Date = Me.TxtDate.Value
    End Sub
     
    Private Sub Mois_Click()
    Me.Mois.Value = Mid(Me.Date.Value, 4, 2)
    End Sub
    Tout fonctionne correctement sauf si j'introduit 09/12/2009 par exemple
    dans ce cas la date devient 9/12/2009 et l'affichage mois est décaléd'un rang soit 2/
    Pouvez-vous apporter le remède?
    Sincères remerciements pour votre aide
    Claudine

  9. #9
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    Si au lieu de 09/12/2009 il s'affiche 9/12/2009 alors il faut mettre Mid(Me.txtDate.Value, 3, 2) au lieu de Mid(Me.txtDate.Value, 4, 2)
    Mais le pb que tu rencontrera sera pour les date comme "10/12/2009" tu aura la chaine "/1" au lieu de "12" donc il faut revoir le format de tes dates pour les afficher 09/12/2009 sinon tu dois faire un test sur le jour de la date (<10 ou >=10) pour choisir entre Mid(Me.txtDate.Value, 3, 2) et Mid(Me.txtDate.Value, 4, 2)
    j'espère avoir aidé
    Autre chose; change le nom de ton textbox Date c'est un mot reservé met par exemple txtDate

  10. #10
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Citation Envoyé par Claudine Voir le message
    J'ai un formulaire de vente qui affiche automatiquement la date dans la zone texte "date"; Comment puis-je afficher automatiquement dans une autre zone texte appelée"mois" le mois correspondant à la date affichée?
    A quel moment la date s'affiche-t-elle dans la zone de texte "date" ? à l'ouverture du formulaire ?
    (Remarque : très déconseillé de donner comme nom à une zone le nom déjà affecté à une fonction. Je te conseille plutôt d'utiliser la normalisation des dénomainations. Ainsis ta zone de texte devrait plutôt s'appeller "txtDate"

    Puisque tu souhaites récupérer le mois de la date dans un champ lié à la table source du formulaire, tu peux simplement écrire dans l'évènement Sur Ouverture du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.LeMois = Month(Date)
    Maintenant, si la date est saisie manuellement, dans l'évènement Après Mise à jour, tu créeras le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.LeMois = Month(CDate(txtDate))
    Me représente le formulaire en cours
    LeMois représente le champ dans lequel tu dois stocker la valeur du mois en cours.

    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonjour Miamou,
    Vous me donnez deux conseils et de bons conseils mais l'élève n'est pas à la hauteur . J'ai essayé de revoir le format des dates pour les afficher 09/12/2009 au lieu de 9/12/2009 mais je n'y arrive pas. Comment faut-il procéder?
    Comment faire un test sur le jour de la date (<10 ou >=10) pour choisir entre Mid(Me.txtDate.Value, 3, 2) et Mid(Me.txtDate.Value, 4, 2) ?
    Je suis désolé de vous importuner pour des notions probablement de base mais je ne demande qu'à progresser.
    Sincères salutations
    Claudine

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Bonjour,
    Pour le format c'est la fonction éponyme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Format(expression qui renvoi une date,"dd/mm/yyyy")

    ou d est le jour, m le mois, y l'année.

    d/m/yy donne 9/1/10 ou au mieux 21/12/10
    dd/mm/yyyy donne 09/01/2010
    dddd dd mmmm yyyy donne mercredi 6 janvier 2010

    Voilà tu sais tout (ou presque)

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonsoir Jeannot45,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub LeMois_AfterUpdate()
    Me.LeMois = Month(CDate(TxtDate))
    End Sub
    Je crois avoir appliquer à la lettre vos conseils dans une très petite bd pour tester votre code, mais malheureusement rien ne se passe ni code d'erreur, ce qui est encore plus bizarre
    Comme la date est saisie manuellement, dans l'évènement Après Mise à jour j'ai introduit le code ci-dessus.
    Ce code est-il adapté à access 2000?
    Autre chose: partant de la date comment extraire les trimestres?
    J'ai pu extraire l'année,le jour et le mois avec les codes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Jour_Enter()
    Me.Jour.Value = Mid(Me.TxtDate.Value, 1, 2)
    End Sub
     
    Private Sub TxtAnnée_Enter()
    Me.TxtAnnée.Value = Mid(Me.TxtDate.Value, 7, 4)
    End Sub
     
    Private Sub TxtMois_Enter()
    Me.TxtMois.Value = Mid(Me.TxtDate.Value, 4, 2)
    End Sub
    Sincères remerciements pour votre aide
    Claudine

  14. #14
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut Trimestre
    Bonsoir,

    Pour extraire le trimestre on utilise la fonction DatePart
    Si txtDate est le nom du champ contenant la date écrire dans un champ calculé dans une requête par exemple.
    Alors le champ peut être utiliser comme un champ de la table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Trimestre : DatePart("t";[txtDate])
    Cordialement.

    RJ

  15. #15
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Je te joins une petite base qui te reprends les propositions de rjamin et les miennes

    Petite remarque quant à la syntaxe de rjamin. Si tu veux l'utiliser dans un code VBA, tu mettras :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txtTrimestre = DatePart("q",DateSaisie)
    Bonne continuation
    Fichiers attachés Fichiers attachés
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  16. #16
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Petite précision :

    t pour Trimestre à utiliser dans les expressions (donc partout en dehors de vba)
    q pour Quarter à utiliser uniquement dans VBA.

    A noter que Format() peut également faire le boulot.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Réponses: 18
    Dernier message: 24/01/2010, 07h40
  2. Réponses: 1
    Dernier message: 24/03/2009, 23h23
  3. Réponses: 2
    Dernier message: 16/05/2008, 08h23
  4. Réponses: 7
    Dernier message: 31/01/2008, 12h42
  5. TRIM automatique dans une zone texte
    Par jproto dans le forum Forms
    Réponses: 3
    Dernier message: 20/06/2007, 15h53

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