ms-access - 访问日期比较不适用于特定日期
问题描述
我制作了一个表格来更新历史数据和一个用于检查结果的子表格!一切正常,除了一个小问题。
对于 2018 年任何月份的第一个日期,我的日期比较结果都不正确!!!(这让我发疯)
所以我的代码如下:
Private Sub runbtn_Click()
Me.Refresh
Dim theminimum As String
Dim theprodscID As String
Dim thepurchasedate As Date
If IsNull(Me.purchasedate) = False Then
theprodscID = Str(Me.prodscID)
thepurchasedate = Me.purchasedate.Value
'minimum textbox
theminimum = "Select Top 1 [update value]" & _
" From [product and shareclass level data update]" & _
" Where [product and shareclass level data update].[dataID] =" & Str(1) & _
" And [product and shareclass level data update].[prodscID] =" & theprodscID & _
" And ([product and shareclass level data update].[timestamp] <= #" & thepurchasedate & "#)" & _
" Order by [product and shareclass level data update].[timestamp] DESC"
If CurrentDb.OpenRecordset(theminimum).RecordCount = 0 Then
Me.minimum = Null
Else
Me.minimum = CurrentDb.OpenRecordset(theminimum).Fields(0).Value
End If
例如,如果我有记录更新值:“hello” on 01/05/2018; “再见”于 2017 年 1 月 8 日。然后,当我输入购买日期为 01/05/2018 时,它应该给我“你好”而不是“再见”!但是,如果我输入 12/05/2018,它会给我“你好”,这是正确的!我发现此错误发生在我作为时间戳记的某些日期,但适用于其他日期!
我检查了我的代码,我认为它是正确的。我不知道是什么问题!
谢谢, 菲莉
解决方案
您的问题是,日期值必须正确格式化为文本表达式。因此:
" And ([product and shareclass level data update].[timestamp] <= #" & Format(thepurchasedate, "yyyy\/mm\/dd") & "#)" & _
或者,实现我的函数CSql,或者 - 甚至更好 - 开始使用参数(为此,bing/google)。
推荐阅读
- c# - 如何制作使用 oninput 而不是 onchange 绑定的 EditForm 输入?
- keras - 在网络摄像头视频流上加载 keras 模型
- android - 在 Content Provider 中定义并在 onCreate() 中初始化的全局变量在 query() 中为空
- linux - 当 DTR 和 RTS 为零时停止从 USB CDC 设备接收数据
- c - 如何分隔括号之间的术语并在C中列出它们
- java - 缺少多重继承的解决方法
- php - 让 Google 客户端在 Lumen 中工作
- python-3.x - 重新排列熊猫列中的名称顺序
- python-3.x - 在条件下删除重复
- python-3.x - Tkinter 帧没有通过类似的打包参数同等扩展