Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jessy Sempere [MVP]
Bonjour
La fonction qui suit devrait te convenir :
Je désire faire une function qui me renvoie une date aléatoire entre une date mini donné et une date de fin donné.
************************************************* Function fDtRnd(dtStart As Date, dtEnd As Date) As Date '** Fonction retournant une date aléatoire '** entre dtStart et dtEnd Dim lngStart As Long Dim lngEnd As Long Dim lngResult As Long
lngStart = CLng(dtStart) lngEnd = CLng(dtEnd)
lngResult = Int((lngEnd - lngStart + 1) * Rnd + lngStart) fDtRnd = CDate(lngResult) End Function *************************************************
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------
Bonjour
La fonction qui suit devrait te convenir :
Je désire faire une function qui me renvoie une date
aléatoire entre une date mini donné et une date de fin
donné.
*************************************************
Function fDtRnd(dtStart As Date, dtEnd As Date) As Date
'** Fonction retournant une date aléatoire
'** entre dtStart et dtEnd
Dim lngStart As Long
Dim lngEnd As Long
Dim lngResult As Long
lngStart = CLng(dtStart)
lngEnd = CLng(dtEnd)
lngResult = Int((lngEnd - lngStart + 1) * Rnd + lngStart)
fDtRnd = CDate(lngResult)
End Function
*************************************************
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
Je désire faire une function qui me renvoie une date aléatoire entre une date mini donné et une date de fin donné.
************************************************* Function fDtRnd(dtStart As Date, dtEnd As Date) As Date '** Fonction retournant une date aléatoire '** entre dtStart et dtEnd Dim lngStart As Long Dim lngEnd As Long Dim lngResult As Long
lngStart = CLng(dtStart) lngEnd = CLng(dtEnd)
lngResult = Int((lngEnd - lngStart + 1) * Rnd + lngStart) fDtRnd = CDate(lngResult) End Function *************************************************
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------
Xavier HUE
Bonjour Doft,
Peut être en convertissant les deux dates en nombre "serial" puis, calculer un nombre aléatoire compris entre ces deux valeurs, et finalement convertir ce nombre en date...
C'est une piste. Cordialement.
Bonjour Doft,
Peut être en convertissant les deux dates en
nombre "serial" puis, calculer un nombre aléatoire compris
entre ces deux valeurs, et finalement convertir ce nombre
en date...
Peut être en convertissant les deux dates en nombre "serial" puis, calculer un nombre aléatoire compris entre ces deux valeurs, et finalement convertir ce nombre en date...
C'est une piste. Cordialement.
Xavier HUE
Bonjour Jessy,
Bien vu! Je cherchais dans Access, l'équivalent de la conversion d'une date en un nombre Serial (comme dans Excel), et pas trouvé! Merci pour l'info ;-) J'avions point pensé au CLng.
Ceci étant, j'ai testé ça:
Function DateAleatoire(datDateMini As Date, datDateMaxi As Date) As Date Dim dblValAleatoire As Double Dim NbJourEntreDates As Double
Bien vu!
Je cherchais dans Access, l'équivalent de la conversion
d'une date en un nombre Serial (comme dans Excel), et pas
trouvé! Merci pour l'info ;-) J'avions point pensé au CLng.
Ceci étant, j'ai testé ça:
Function DateAleatoire(datDateMini As Date, datDateMaxi As
Date) As Date
Dim dblValAleatoire As Double
Dim NbJourEntreDates As Double
Bien vu! Je cherchais dans Access, l'équivalent de la conversion d'une date en un nombre Serial (comme dans Excel), et pas trouvé! Merci pour l'info ;-) J'avions point pensé au CLng.
Ceci étant, j'ai testé ça:
Function DateAleatoire(datDateMini As Date, datDateMaxi As Date) As Date Dim dblValAleatoire As Double Dim NbJourEntreDates As Double
Sub test() Dim i As Integer For i = 1 To 100 Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#) Next i End Sub
puis tu fermes et réouvres access et que tu relances cette fonction, tu auras 2 séries de 100 dates strictement identiques.
Il conviendrait donc de modifier la routine en :
Sub test() Randomize '<<<---- Dim i As Integer For i = 1 To 100 Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#) Next i End Sub
autrement dit, appeler la Fonction Randomize sur ouverture de la base, ou du formulaire, ou sur timer, ou au moment le plus opportun pour s'assurer qu'on ne va pas avoir 2 fois la même série de chiffres.
Voilà
Espérant avoir aidé -- Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Site Perso : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Sub test()
Dim i As Integer
For i = 1 To 100
Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#)
Next i
End Sub
puis tu fermes et réouvres access et que tu relances cette fonction,
tu auras 2 séries de 100 dates strictement identiques.
Il conviendrait donc de modifier la routine en :
Sub test()
Randomize '<<<----
Dim i As Integer
For i = 1 To 100
Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#)
Next i
End Sub
autrement dit, appeler la Fonction Randomize sur ouverture de la base,
ou du formulaire, ou sur timer, ou au moment le plus opportun
pour s'assurer qu'on ne va pas avoir 2 fois la même série de chiffres.
Voilà
Espérant avoir aidé
--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Sub test() Dim i As Integer For i = 1 To 100 Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#) Next i End Sub
puis tu fermes et réouvres access et que tu relances cette fonction, tu auras 2 séries de 100 dates strictement identiques.
Il conviendrait donc de modifier la routine en :
Sub test() Randomize '<<<---- Dim i As Integer For i = 1 To 100 Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#) Next i End Sub
autrement dit, appeler la Fonction Randomize sur ouverture de la base, ou du formulaire, ou sur timer, ou au moment le plus opportun pour s'assurer qu'on ne va pas avoir 2 fois la même série de chiffres.
Voilà
Espérant avoir aidé -- Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Site Perso : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Jessy Sempere [MVP]
Salut Anor
Merci de ces précisions, quand je dis qu'on en apprend tous les jours... ;-))
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message news:
Sub test() Dim i As Integer For i = 1 To 100 Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#) Next i End Sub
puis tu fermes et réouvres access et que tu relances cette fonction, tu auras 2 séries de 100 dates strictement identiques.
Il conviendrait donc de modifier la routine en :
Sub test() Randomize '<<<---- Dim i As Integer For i = 1 To 100 Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#) Next i End Sub
autrement dit, appeler la Fonction Randomize sur ouverture de la base, ou du formulaire, ou sur timer, ou au moment le plus opportun pour s'assurer qu'on ne va pas avoir 2 fois la même série de chiffres.
Voilà
Espérant avoir aidé -- Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Site Perso : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Salut Anor
Merci de ces précisions, quand je dis qu'on en apprend tous les jours...
;-))
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message
news: upoxTzUWEHA.2028@tk2msftngp13.phx.gbl...
Sub test()
Dim i As Integer
For i = 1 To 100
Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#)
Next i
End Sub
puis tu fermes et réouvres access et que tu relances cette fonction,
tu auras 2 séries de 100 dates strictement identiques.
Il conviendrait donc de modifier la routine en :
Sub test()
Randomize '<<<----
Dim i As Integer
For i = 1 To 100
Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#)
Next i
End Sub
autrement dit, appeler la Fonction Randomize sur ouverture de la base,
ou du formulaire, ou sur timer, ou au moment le plus opportun
pour s'assurer qu'on ne va pas avoir 2 fois la même série de chiffres.
Voilà
Espérant avoir aidé
--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Merci de ces précisions, quand je dis qu'on en apprend tous les jours... ;-))
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message news:
Sub test() Dim i As Integer For i = 1 To 100 Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#) Next i End Sub
puis tu fermes et réouvres access et que tu relances cette fonction, tu auras 2 séries de 100 dates strictement identiques.
Il conviendrait donc de modifier la routine en :
Sub test() Randomize '<<<---- Dim i As Integer For i = 1 To 100 Debug.Print fDtRnd(#1/1/2000#, #12/31/2000#) Next i End Sub
autrement dit, appeler la Fonction Randomize sur ouverture de la base, ou du formulaire, ou sur timer, ou au moment le plus opportun pour s'assurer qu'on ne va pas avoir 2 fois la même série de chiffres.
Voilà
Espérant avoir aidé -- Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Site Perso : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------