从Excel中的ACCESS获取所选日期之前的最后日期

时间:2015-07-08 09:22:37

标签: excel vba ms-access

我在表中有一个带日期列的Access DATABASE,日期已排序但可能缺少日期。问题是在输入日期之前获取最新日期。例如,我设法使用这个{=MAX(IF(A1:A10<=C1,A1:A10,0))}公式在Excel工作表中解决了这个问题,但是我有一个包含大量数据的数据库,需要使用公式从DB调用它。

我尝试编写代码,但它不起作用。我不明白为什么?任何人都可以帮我解决这个问题吗?感谢。

Public Function GetDateDB(TBL As String, COLMN As String, DT As String) As Variant

Dim DB As Database
Dim RS As Recordset
Dim DBfile

DBfile = Application.ThisWorkbook.Path & "\myDatabase.accdb"

Set DB = DBEngine.OpenDatabase(DBfile)
Set RS = DB.OpenRecordset("SELECT MAX(" & COLMN & ") as MaxDate FROM " & TBL & " WHERE MaxDate <= #" & Format(DT, "m\/d\/yyyy") & "# ", dbOpenDynaset)

If RS.RecordCount > 0 Then
    RS.MoveFirst
    GetDateDB = RS!MaxDate
End If

End Function

1 个答案:

答案 0 :(得分:1)

据我所知,您只需要将... WHERE MaxDate <= ...替换为... WHERE MaxDate < ...。 (只需删除等号)

使用&lt; =进行搜索时,您将在大多数情况下获得输入日期。