[AccessD] Random numbers lottery-style

Jim DeMarco Jdemarco at hudsonhealthplan.org
Thu Mar 3 13:28:06 CST 2005


Steve,

Rather than an array how about using the VBA Collection object which will allow you to remove an item.  Add your Activity ID items to a Collection with your numeric value as the key value.

HTH,

Jim DeMarco

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Steve Erbach
Sent: Thursday, March 03, 2005 2:06 PM
To: Access Developers discussion and problem solving
Subject: [AccessD] Random numbers lottery-style


Dear Group,

I'd like to fill up some test data tables in a Volunteer database that
tracks activities and the amount of time volunteers commit to these
activities.

I thought that I might attempt filling the tables in a random fashion,
but I'm having some difficulty. The table (tblVolActivity) I want to
fill has this structure:

VolActID - AutoNumber (Key)
VolunteerID - Long
ActivityDate - Date
ActivityID - Long
TimeSpent - Single

I've created another table (tblTempVols) that contains the following info:

VolunteerID - Long
NoOfInterests - Long
NoOfTimes - Long

For each of the 300-odd volunteers I've used the Rnd function to fill
in the two 'NoOf' columns. The NoOfInterests is a number between 1 and
6, representing the number of different types of activity a Volunteer
commits time to. For example, transporting people, paying visits to
the sick, or working in the gift shop. There are a total of 29
different activities.

The NoOfTimes column shows the total number of times the Volunteer
worked during the year. That number is between 1 and 48. Again, I used
the Rnd function to fill this column as well as the NoOfInterests
column. So it looks like this:

VolunteerID - NoOfInterests - NoOfTimes
1 - 3 - 13
2 - 6 - 5
3 - 4 - 2
4 - 4 - 16
5 - 2 - 38
etc.

Now I want to fill another table (tblTempActList) that has this structure:

VolunteerID - Long
ActivityID - Long

Here's where I'm stuck. The list of 29 different Activities has
ActivityIDs from 1 to 29 in an unbroken sequence. If a Volunteer is
interested in, say, 4 Interests (from the NoOfInterests column in
tblTempVols) I'd like to insert 4 rows for this Volunteer into this
tblTempActList table and randomly pick the ActivityIDs. Now, of
course, if I use the Rnd function to select 4 ActivityIDs there's a
chance that there will be duplicate ActivityIDs for this Volunteer. So
what I'd like to do is pick the ActivityIDs like they pick lottery
numbers; that is, removing the selected numbers from the pool before
picking the next one.

How do I accomplish that is the question. Does anybody have, say, a
PickLotteryNumber() function where the function would take a list of
numbers and pick one while removing the selected number from the list
of available numbers? I've been fooling with arrays, but I can't
"erase" an array element from the middle with a ReDim statement.

If this problem is solved then I can take the next step

Any ideas?
-- 
Regards,

Steve Erbach
Scientific Marketing
Neenah, WI
www.swerbach.com
Security Page: www.swerbach.com/security
-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com


 



***********************************************************************************
"This electronic message is intended to be for the use only of the named recipient, and may contain information from Hudson Health Plan (HHP) that is confidential or privileged.  If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or use of the contents of this message is strictly prohibited.  If you have received this message in error or are not the named recipient, please notify us immediately, either by contacting the sender at the electronic mail address noted above or calling HHP at (914) 631-1611. If you are not the intended recipient, please do not forward this email to anyone, and delete and destroy all copies of this message.  Thank You".
***********************************************************************************




More information about the AccessD mailing list