2015-09-04 78 views
-2

使用MS Access 2010,我需要生成從任意開始日期(例如#1/1/2015#)到現在的日期的完整列表Date() 。我希望這個列表能夠存在於自己的表格中,儘管查詢也可以工作。我還希望只獲取工作日/工作日。誰能幫忙?使用MS Access 2010創建動態商務日期列表

我正在按日期跟蹤業務流程錯誤。爲每個錯誤創建一個新的錯誤記錄,並且每個記錄都標有日期。但是,每個日期都沒有錯誤。因此,隨着時間的推移報告不會給出正確的可視化,因爲沒有錯誤的日期未被表示。

我很感謝幫助在Access中生成這個列表,以及用於表示這些信息的任何替代想法。

乾杯, 伯吉斯

更新 - 我已經能夠做出日期的列表,因爲一開始日期。這裏是我的代碼:

Sub createDatesTable() 

    'Declare variables' 
    Dim startDate As Date 
    Dim endDate As Date 
    Dim countDate As Date 
    Dim length As Long 
    Dim i As Long 
    Dim dates() As Date 

    'Initialize' 
    startDate = #6/23/2015# 
    endDate = #9/1/2015# 
    countDate = startDate 
    length = endDate - startDate 

    'Define date array length' 
    ReDim dates(1 To length) 

    'Generate date list in array' 
    For i = 1 To (length) 
     dates(i) = countDate 
     countDate = countDate + 1 
    Next i 

    'Print array to Immediate Window' 
    For i = 1 To length 
     Debug.Print dates(i) 
    Next i 


    Dim db As DAO.Database 
    Dim rs As DAO.Recordset 


    Set db = CurrentDb 
    Set rs = db.OpenRecordset("tblDateList", dbOpenDynaset) 

    'Add array data to existing table' 
    For i = 1 To length 
     rs.AddNew 
     rs!DateList = dates(i) 
     rs.Update 
    Next i 

    rs.Close 
    db.Close 

End Sub 

現在,我對VBA很新,所以這可能包含基本的錯誤。感謝您的反饋。

-Burgess

+0

[?你嘗試過什麼( http://whathaveyoutried.com)請張貼任何嘗試解決方案 – Barranka

回答

0

你的表可以有這樣的結構:

Column name | Data type 
---------------+---------- 
dt    | DateTime 
isBusinessDay | Yes/No 

至於填充,這樣的事情:

public sub fillDates(startDate as date, endDate as date) 
    dim db as DAO.database, rs as DAO.Recordset 
    dim strSQL as string 
    dim d as date 

    strSQL = "delete from tbl_dates" 
    docmd.runsql strSQL 

    set db = currentdb() 
    set rs = db.openRecordset("tbl_dates", dbOpenDynaset, dbAppendOnly) 

    for d = startDate to endDate 
     with rs 
      .addNew 
      ![dt] = d 
      ![isBusinessDay] = (format(d, "w", vbMonday) <= 5) 
      .update 
     end with 
    next d 
    rs.close 
    db.close 
end sub 
+0

謝謝巴蘭卡。這看起來比我能想起數組和編輯表格要簡單得多。我特別喜歡你用isBusinessDay進行過濾的方法。我現在要將其添加到我的代碼中。 –