我在尝试使此代码正常工作时遇到了麻烦:
Public Sub GetDepot()
Dim fs As Date
Dim ss As Long
fs = CurrentDb.OpenRecordset("SELECT Max(fldMovementDate) FROM [tblMovements] WHERE [fldMovementTypeIdfk] =1")(0)
ss = CurrentDb.OpenRecordset("SELECT(fldMovementLocationIdfk) FROM [tblMovements] WHERE [fldMovementDate]= '" & fs & "'")(0)
MsgBox (ss)
End Sub
最终,我试图从表单的最后一个仓库位置填充表单上的文本框。调试会选择我要设置ss变量的位置。我的SQL语句出了点问题,并且尝试了各种方法来纠正它,但无济于事。我还尝试将变量存储为不同的数据类型,以为这可能是我出了问题的地方,但是这种方法仍然无法解决问题。
最后的MsgBox只是用来帮助尝试和调试的,但是代码还没到那么远。我知道我将需要向此Sub添加更多功能,以完成我需要的功能,但无法再进行任何操作。
我也尝试过设置MsgBox来显示fs变量存储的内容,这似乎显示了正确的日期,即16/02/18。
如果有人可以帮助,将不胜感激!
为此,请使用DMax和DLookup:
fs = DMax("fldMovementDate", "[tblMovements]", "[fldMovementTypeIdfk] = 1")
ss = DLookup("fldMovementLocationIdfk", "[tblMovements]", "[fldMovementDate]= #" & Format(fs, "yyyy\/mm\/dd") & "#")
或这样做:
Public Sub GetDepot()
Dim rs As DAO.Recordset
Dim ss As Long
Set rs = CurrentDb.OpenRecordset("SELECT TOP 1 fldMovementLocationIdfk FROM [tblMovements] WHERE [fldMovementTypeIdfk] = 1 ORDER BY fldMovementDate DESC")
ss = rs(0).Value
rs.Close
Set rs = Nothing
MsgBox (ss)
End Sub`
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句