Date Data type changing to text

  • Thread starter Thread starter Octet32
  • Start date Start date
O

Octet32

I have this code that works great but for some reason the Data type change
from Date to Text and I am unable to match it up to other queries,
Anyone know how to fix this?


Option Compare Database
Option Explicit

Public Function GetBusinessDay(datStart As Date, intDayAdd As Integer)
On Error GoTo Error_Handler
'Adds/Subtracts the proper Business day skipping holidays and weekends

Dim rst As DAO.Recordset
Dim DB As DAO.Database
'Dim strSQL As String

Set DB = CurrentDb
Set rst = DB.OpenRecordset("SELECT [HolidayDate] FROM tblHolidays", _
dbOpenSnapshot)

If intDayAdd > 0 Then
Do While intDayAdd > 0
datStart = datStart + 1
rst.FindFirst "[HolidayDate] = #" & datStart & "#"
If Weekday(datStart) <> vbSunday And Weekday(datStart) <>
vbSaturday Then
If rst.NoMatch Then intDayAdd = intDayAdd - 1
End If
Loop

ElseIf intDayAdd < 0 Then

Do While intDayAdd < 0
datStart = datStart - 1
rst.FindFirst "[HolidayDate] = #" & datStart & "#"
If Weekday(datStart) <> vbSunday And Weekday(datStart) <>
vbSaturday Then
If rst.NoMatch Then intDayAdd = intDayAdd + 1
End If
Loop

End If

GetBusinessDay = datStart

Exit_Here:
rst.Close
Set rst = Nothing
Set DB = Nothing
Exit Function

Error_Handler:
MsgBox Err.Number & ": " & Err.Description
Resume Exit_Here
End Function
 
Change the declaration line to include a return type for your
function...

instead of this:
Public Function GetBusinessDay(datStart As Date, intDayAdd As
Integer)

do this:
Public Function GetBusinessDay(datStart As Date, intDayAdd As
Integer) As Date

then your return value will be cast as a date and not a variant (which
is what you get if you don't specify a return type for your function).
 
Back
Top