我在表中有一个带日期列的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
答案 0 :(得分:1)
据我所知,您只需要将... WHERE MaxDate <= ...
替换为... WHERE MaxDate < ...
。 (只需删除等号)
使用&lt; =进行搜索时,您将在大多数情况下获得输入日期。