Help with vb code business days Results

Hello this is my first post so bare with me please

I am a university placement student in a business that use MS access for DBs and front ends. One of the databases i have been asked to 'better'.
Part of this is a calander for appointments. I have several forms that all work perfectly but they are very slow. I have run a few trial and error tests with vb and found that it is a specific module that is slowing the form down. Could anyone point me in the right direction as to how to speed it up?

the code is as follows:

	Code:
	Public Sub ShowDayAppts3(vDate As Date)

'Copies the appointments info from tblAppointments into tblWeekData for the selected day
'Entry  (vDate) = Date to be displayed
'Exit   tblWeekData holds the appointments for the selected week (only Day1Data field used in this case)

Dim rst As Recordset
Dim vFirstDate As Date, vDateStop As Date
Dim vRow As Long, vTemp As Long
Dim vArray(0, (1440  conPeriod) - 1) As Variant                                        '1 column (day) x 48 (time slots) rows

    On Error GoTo ErrorCode

'Calc week numbers and dates from starting date and copy to table
    vFirstDate = vDate                                                                  'set vFirstDate to selected date

'Fetch all appts for selected day
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM tblAppointments3 WHERE " _
    & "DateValue(ApptStart) = #" & format(vDate, "yyyy/m/d") & "# ORDER BY ApptStart")   'fetch appts for selected day
    Do Until rst.EOF
        'Calc start and end dates for current appointment time and save
        If DateValue(rst!ApptStart) < vFirstDate Then                                   'if appt starts before selected date
then
            vDate = DateValue(vFirstDate) & " 00:00:01"                                 'start at first time slot in calendar
for current date
        Else                                                                            'else
            vDate = rst!ApptStart                                                       'start at first time slot of appt
        End If

        If DateValue(rst!ApptEnd) > vFirstDate Then                                     'if appt ends after selected date
then
            vDateStop = DateValue(vFirstDate + 1) & " 00:00:01"                         'stop at 00:00:01 on next day (added
1 sec to set time part)
        Else                                                                            'else
            vDateStop = DateValue(vFirstDate) & " " & TimeValue(rst!ApptEnd)            'stop at last time slot of appt
        End If

        'Now copy appt info into each row in array for col 0
        Do                                                                              'do--
            vRow = (((Hour(vDate) * 60) + Minute(vDate))  conPeriod)                   'calc Row No from date & time & period
            If rst!ApptID  vTemp Then                                                 'if temp store different than data then
!!!
                vArray(0, vRow) = vArray(0, vRow) & rst!ApptSubject & " - " & rst!Researcher & " - " & IIf(rst!Exported,
"Yes", "No") & " "            'add appt data to array
                vTemp = rst!ApptID                                                      'update temp store !!!
            Else                                                                        'else !!!
                vArray(0, vRow) = "''"                                                  'show " char !!!
            End If                                                                      'end if !!!
            vDate = DateAdd("n", conPeriod, vDate)                                      'inc time ref by 30 mins
        Loop Until DateDiff("n", vDate, vDateStop)

I have a form in my database that I want to refer to in VBA code to limit the records it returns.

I have a calendar form that pulls data from a SchedulingTable called ROSchedule, in this table there is a BUID (Business Unti ID) column.
The calendar is launched from a form that has a drop down list where the user can select a particular business Unit, this form is called BusinessUnit.
All of the queries filter out the records specific to the business unit in the form BusinessUnit
Sample Query SELECT RoScheduling.ArrivedDate, RoScheduling.ABSRO, RoScheduling.SchedulingHours, RoScheduling.Customer, RoScheduling.BUID FROM RoScheduling WHERE (((RoScheduling.BUID)=[Forms]![BusinessUnit]![BUID]));
but when the calendar loads the VB select Where doesn't seem to filter out the records.
Here is the VB code that works without the BUID filter. I need to be able to have the VB code filter out the records the same way the Sample Query above does. I only want the records that match the BUID in the BusinessUnit form.
Any help with the VBA code would be greatly appreciated, I'm not that good with the VBA side of Access so please don't make any assumptions that I know what I'm doing with it.
Thanks
Randy

Private Sub cbo_Month_Change()
'Month has changed so we have to recalculate the form
Dim cnt As Long
'First step is to find out what the month is composed of

Dim DaysInMonth As Long
DaysInMonth = DateDiff("d", cbo_Month, DateAdd("m", 1, cbo_Month))
Dim FirstDay As Long
FirstDay = Weekday(cbo_Month, vbMonday)

'Hide the first few forms that dont count
For cnt = 1 To 6
Me.Controls("SF" & CStr(cnt)).Visible = True
Next
If FirstDay > 1 Then
For cnt = 1 To FirstDay - 1
Me.Controls("SF" & CStr(cnt)).Visible = False
Next
End If

'Hide the last few forms that dont count
For cnt = 28 To 37
Me.Controls("SF" & CStr(cnt)).Visible = True
Next
If FirstDay < 7 Or DaysInMonth < 31 Then
For cnt = FirstDay + DaysInMonth To 37
Me.Controls("SF" & CStr(cnt)).Visible = False
Next
End If
Dim frm As Form
Dim DayOfMonth As Long
'Now we need to set the record source for each day.....
For cnt = FirstDay To ((DaysInMonth + FirstDay) - 1)
DayOfMonth = (cnt - FirstDay) + 1
Set frm = Forms!frm_Calendar.Controls("SF" & CStr(cnt)).Form
frm.RecordSource = "SELECT ArrivedDate,ABSRO,SchedulingHours,Customer FROM ROScheduling WHERE ArrivedDate = #" & CStr((DayOfMonth)) & "/" & Format(Me.cbo_Month, "mmm/yyyy") & "#"
frm.lbl_Date.Caption = CStr(DayOfMonth)
frm.Controls("Date").DefaultValue = "#" & CStr((DayOfMonth)) & "/" & Format(Me.cbo_Month, "mmm/yyyy") & "#"
Me.Controls("SF" & CStr(cnt)).Requery
Next

End Sub


Not finding an answer? Try a Google search.