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 :

obtenir toutes les dates valides comprises entre dates


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 55
    Points
    55
    Par défaut obtenir toutes les dates valides comprises entre dates
    hello !

    J'ai la fonction suivante. elle me permet d'obtenir les dates comprises entre une date de début et une date de fin. Je souhaiterais que les dates que j'obtiens alimentent une zone de liste. Quelqu'un pourrait il me mettre sur la voie svp???? merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Function getDatesBetween(dStart As Date, dEnd As Date) As Date()
         Dim i As Integer
         Dim d As Date
         If dStart > dEnd Then Exit Function
         ReDim Dates(Int(dEnd - dStart)) As Date
         For d = dStart To dEnd
             Dates(i) = d
             i = i + 1
             Next
         getDatesBetween = Dates
     End Function

  2. #2
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 150
    Points : 107
    Points
    107
    Par défaut
    salut
    pourquoi ne pas passer directement par une requete que tu mettrai directement dans le rowsource de ta liste?

  3. #3
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Je te donne une idée :
    Tu crées ta liste avec la propriété RowSourceType = "Liste de valeurs".
    Ensuite tu modifies ta procédure pour obtenir la liste de tes dates non plus dans un tableau mais dans une chaîne de caractères, comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strDates = "31/05/06";"01/06/06"; ... ; "06/06/06"
    Et tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaListe.RowSource = strDates
    En espérant que cela t'aide,

    pgz

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 55
    Points
    55
    Par défaut
    Salut tout le monde,

    fscli dit :
    salut
    pourquoi ne pas passer directement par une requete que tu mettrai directement dans le rowsource de ta liste?
    je ne peux pas utiliser une requête car je ne fais pas de recherche sur dans une table. Les dates que je recherchent "n'existent pas".

    pgz dit :
    Bonjour,

    Je te donne une idée :
    Tu crées ta liste avec la propriété RowSourceType = "Liste de valeurs".
    Ensuite tu modifies ta procédure pour obtenir la liste de tes dates non plus dans un tableau mais dans une chaîne de caractères, comme ceci
    Code :
    strDates = "31/05/06";"01/06/06"; ... ; "06/06/06"Et tu fais
    Code :
    MaListe.RowSource = strDates
    En espérant que cela t'aide,
    Ta solution me donne exactement ce que je veux. Maintenant je dois juste l'adapter car il faut que je rajoute des conditions supplementaires...

    Merci a vous deux pour votre aide,

    @+

    Voici le code final pour ceux que ca peut interesser :

    Dans mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub cmdcheckdate_Click()
     
    Me.LstDate.RowSource = ListerDates(Me.datestart, Me.dateend)
     
    End Sub
    Dans un module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function ListerDates(DateMin As Date, DateMax As Date) As String
        Dim i As Long
        Dim s As String
        For i = DateMin To DateMax
            s = s & ";" & Format(i, "dd/mm/yyyy")
        Next
        ListerDates = Mid(s, 2)
    End Function
    Merci à M.HUBICHE au passage !!!!!

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

Discussions similaires

  1. Requete pour voir si une date est comprise entre 2 date
    Par afrodje dans le forum Langage SQL
    Réponses: 1
    Dernier message: 15/11/2008, 15h43
  2. Réponses: 4
    Dernier message: 12/11/2008, 17h21
  3. Réponses: 4
    Dernier message: 26/08/2008, 17h11
  4. Réponses: 2
    Dernier message: 17/03/2008, 18h20
  5. Réponses: 2
    Dernier message: 21/03/2007, 16h06

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