Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

echt random in MS Access (code)

Pagina: 1
Acties:

  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08 14:04
Hallo,

Ik heb een ongelovelijk vaag probleem waar ik echt geen oplossing voor lijk te kunnen verzinnen.

Nadat ik doorhad dat Rnd in Access niet random is (elke keer dat je de applicatie opnieuw opstart krijg je de zelfde set als je zelfde getal als random hebt (bijv Rnd(20143))

Dacht dus. ik doe iets met de tijd erin (altijd uniek toch? In ieder geval op de dag zelf)
code:
1
2
3
4
5
6
7
8
Public Function RealRandom() As Currency
    Dim tickerNumber As Currency

    tickerNumber = Year(Date) + Month(Date) + Day(Date) + Minute(Time) + Second(Time)
    tickerNumber = Rnd(tickerNumber)

    RealRandom = tickerNumber
End Function


En zelfs hier, ookal msgbox ik tickerNumber, en zie ik dat hij elke keer een ander getal doet, geeft access mij exact de zelfde resultaten elke keer als je de applicatie met opstart form start.

Hoe krijg ik dan wel ECHT random lijsten??

alvast bedankt voor de oplossing ;)

Verwijderd

Computergegenereerde cijfers zijn altijd pseudorandom (ergens op gebaseerd). Om je Rnd een nieuwe seed te geven moet je eerst Randomize aan roepen. Aan het begin van je applicatie, in de functie waar het gebruikt wordt, vlak ervoor, maakt niet zoveel uit.

  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08 14:04
Verwijderd schreef op zaterdag 01 december 2007 @ 11:13:
Computergegenereerde cijfers zijn altijd pseudorandom (ergens op gebaseerd). Om je Rnd een nieuwe seed te geven moet je eerst Randomize aan roepen. Aan het begin van je applicatie, in de functie waar het gebruikt wordt, vlak ervoor, maakt niet zoveel uit.
holy sh**... nice! :) dat doet the trick... dat er nergens iets over te vinden is op het internet is mager hoor! maar reuze bedankt!

Verwijderd

Ik wil niet heel lullig doen of betweterig overkomen, maar als ik zoek op Google naar "Visual Basic Random" dan geeft mijn eerste hit dit aan. Met "Microsoft Access Random" staat het antwoord op de eerste pagina, en er staat zelfs een 8 minuten durend filmpje die het uitlegt. Tenslotte staat er letterlijk in de VBA Help (als ik 'Rnd' tik, selecteer en op F1 druk):
Gebruik eerst de instructie Randomize zonder een argument om de generator van aselecte getallen te starten met een begingetal op basis van de systeemtimer voordat u de functie Rnd gebruikt.
Kortom, hier had je best zelf achter kunnen komen. ;-)