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 :

Atteindre enregistrement en fonction de la date du jour [AC-2010]


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut Atteindre enregistrement en fonction de la date du jour
    Bonjour à tous !

    J'aurai aimé savoir comment faire pour atteindre un enregistrement spécifique via la date du jour ? Sachant que j'ai un champs date avec la date correspondante. (le 11/01/2013 au chargement de mon formulaire il se place automatiquement sur l'enregistrement comprenant dans le champ date "11/01/2013).

    Merci d'avance pour toutes vos réponses !

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 859
    Points : 14 972
    Points
    14 972
    Par défaut
    Bonsoir,
    avec Findfirst, c'est possible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_Open(Cancel As Integer)
    Dim rst As Recordset
    Set rst = Me.RecordsetClone
     
     rst.FindFirst "[tadate]= #" & Format(date, "m/d/yyyy") & "#"
       If Not rst.NoMatch Then
            DoCmd.GoToRecord acDataForm, Me.Name, acGoTo, rst.AbsolutePosition + 1
       End If
     
    End Sub

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 424
    Points : 20 002
    Points
    20 002
    Billets dans le blog
    67
    Par défaut
    Bonsoir,

    Si on suppose que ton champ date se nomme "LaDate", tu aurais alors un code de ce type sur ouverture de ton formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Open(Cancel As Integer)
    Me.RecordsetClone.FindFirst "LaDate=Date()"
    Me.Bookmark = Me.RecordsetClone.Bookmark
     
    End Sub
    Edit:
    Slt Tee, tu as répondu plus vite : mais ça doit être dû au décalage horaire


    A+

  4. #4
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut
    Pour singer M. Jourdain dans Molière je répondrais ceci :

    Oui mais alors, de toutes ces façons là, laquelle est la meilleure ?


    Y a-t-il une des deux méthodes plus complète ou bien le résultat sera le même ?

    Quoi qu'il en soit merci de vos rapides réponses !

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 424
    Points : 20 002
    Points
    20 002
    Billets dans le blog
    67
    Par défaut
    Celle de tee-grandbois permet d'éviter un plantage dans le cas ou il n'y a pas d'enregistrement à la date du jour

  6. #6
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut
    parfait je vais suivre celle là alors ! merci infiniment !


    EDIT : En fait deux questions finales :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Not rst.NoMatch Then
            DoCmd.GoToRecord acDataForm, Me.Name, acGoTo, rst.AbsolutePosition + 1
    cette ligne veut dire que s'il ne trouve rien alors il ira au dernier enregistrement trouvé ? (ce qui m'irait très bien).

    Mon formulaire est un sous formulaire lui même sous formulaire.

    j'ai appliqué ceci pour réaliser une opération sur l'enregistrement du premier sous formulaire à l'ouverture du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!F_SaisieHeures![SF_SaisieHeures].SetFocus

    Puis-je faire pareil mais pour le sous-sous formulaire du formulaire ? Si oui, comment ?

    Merci d'avance !

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 859
    Points : 14 972
    Points
    14 972
    Par défaut
    En faisant le mix des 2 réponses, on peut obtenir ceci:
    Code : 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 rst As Recordset
    Set rst = Me.RecordsetClone
    rst.FindFirst "[Ladate]=Date()"
     
    If rst.NoMatch Then
        DoCmd.GoToRecord , , acLast     ' Si pas d'occurrence trouvée
    Else
        Me.Bookmark = rst.Bookmark
    End If
     
    End Sub
    reste à savoir à quel moment tu veux que ce code doit être exécuté, je l'ai mis au chargement du sous-sous formulaire sans problème (donc à l'ouverture du formulaire principal).

  8. #8
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut
    c'est parfait ! j'aurai du y penser avant et je garde le form_load en mémoire pour d'autres applications !

    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/06/2013, 10h14
  2. [MySQL] Afficher enregistrement dynamiquement en fonction de la date du jour
    Par Cedrinho dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 17/08/2010, 07h56
  3. [XL-2007] Enregistrer en fonction de la date
    Par nelly10 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/09/2009, 20h36
  4. Trier les enregistrements en fonction de la date
    Par mpereg dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 12/09/2004, 15h16

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