0
我正在嘗試創建一個函數來將n個工作日添加到日期。這顯然需要考慮週末和假期。週末部分工作正常,但我用表格列出所有的假期,我無法讓我的查詢拉精確的recordCount。它堅持計數總是零。這裏是我的代碼:當記錄存在時訪問VBA recordCount返回0
Public Function dateAddNoWeekends(dt1 As Date, genDate As Integer)
Dim i As Integer
Dim date1 As Date
Dim date2 As Date
Dim holidays As Boolean
Dim isWeekday As Boolean
Dim dayOfWeek As Integer
Dim numDays As Integer
Dim db As Database
Dim rs As DAO.Recordset
Dim sql As String
Set db = CurrentDb
date1 = dt1
date2 = date1
i = 0
numDays = genDate
sql = "SELECT * FROM Holidays WHERE holidayDate = " & date2
Set rs = db.OpenRecordset(sql)
Debug.Print date2
Do While i < numDays
If Not isWeekday Then date2 = date2 + 1
dayOfWeek = Weekday(date2)
If rs.RecordCount > 0 Then
Debug.Print rs.RecordCount
holidays = True
Else
holidays = False
Debug.Print rs.RecordCount
End If
If dayOfWeek > 1 And dayOfWeek < 7 And holidays = False Then
If i < numDays - 1 Then date2 = (date2 + 1)
isWeekday = True
i = i + 1
Else: isWeekday = False
End If
Loop
rs.Close
Debug.Print date2
也許是日期格式的問題?嘗試使用「2017-12-25」等常數日期進行測試。 – Stefan
是否這樣? sql =「SELECT * FROM Holidays WHERE holidayDate ='7/1/2017'」這會導致數據類型不匹配。 – Eleyna
'Set rs = db.OpenRecordset(sql)'add'rs.MoveLast'後面。也可能''SELECT * FROM Holidays WHERE holidayDate =「&CLNG(date2)'。我討厭在Access中的日期。 :) –