簡體   English   中英

VBA excel 中的最大日期范圍來自訪問

[英]VBA max date range in excel from access

vba 的新產品。 我有一個更新 excel 工作簿的 Access 數據庫。 到目前為止,我所擁有的是將記錄集附加到數據選項卡的底部。

我需要構建的是,在它附加 VBA 所需的數據之前,在數據選項卡上的日期列中檢查工作簿的今天日期。 如果它找到今天的日期,它不應該 append 數據。

我知道我需要 max(date column) 或 DMax,但我不知道如何構建它。 我自己完全糊塗了,所以我沒有在雜草中得到更多,而是尋求幫助。

Public Sub max_Click()

verintreportTemplate2 = "Template_VerintSchedulesResults_EST.xlsx"
reporttemplatelocation = "\Customer Service\Midwest\OH Group01\EntSchedAndForecast\BackUpDocs\NEW_DATABASE\Schedules_Process\Report_Templates\"
Drive = "z:"

Dim appExcel As Object

Set appExcel = CreateObject("Excel.Application")

With .Workbooks.Open(Drive & reporttemplatelocation & verintreportTemplate2)
.Worksheets ("DOW Summary Data")
'dateMax = DMax("Weekof")

所以我停在了這一點上。

如果工作簿結構簡單(第一行中的單行列標題),則使用工作表作為數據源打開記錄集。 如果工作表結構復雜,則需要指定范圍或不同的方法。

從記錄中獲取日期值。

Public Sub max_Click()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

verintreportTemplate2 = "Template_VerintSchedulesResults_EST.xlsx"
reporttemplatelocation = "\Customer Service\Midwest\OH Group01\EntSchedAndForecast\BackUpDocs\NEW_DATABASE\Schedules_Process\Report_Templates\"
Drive = "z:"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Drive & reporttemplatelocation & verintreportTemplate2 _
    & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"
rs.Open "SELECT Max(Weekof) AS MaxDate FROM [DOW Summary Data$]", cn, adOpenDynamic, adLockOptimistic
If Date() <> rs!MaxDate Then
'do something
End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM