【问题标题】:Access VBA Last update on client访问 VBA 客户端上的最后更新
【发布时间】:2015-04-26 01:49:53
【问题描述】:

我的一个朋友让我帮助他解决 Access 中的问题。 他有一个客户列表,其中存储了一些信息,例如姓名、地址、...。

这里也是一个带有“上次更新”选项的列

现在我想弄清楚的是,当“上次更新”值大于一个月时,如何显示带有客户名称的 msgbox。

到目前为止,我的代码如下所示:

Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim SQL As String

'SQL = "SELECT * FROM Beheer WHERE " & Me.[Last update] & " >= (" & Date & " - INTERVAL 1 Month)"
'SQL = "SELECT * FROM Beheer WHERE DateDiff(" & "m" & "," & Me.[Last update] & "," & Date & ") <= 1"

Set RS = CurrentDb.OpenRecordset(SQL)
If RS.EOF Then
  MsgBox "No batch ID found.", vbOKOnly + vbInformation, "Last Batch"
Else
  MsgBox "Last batch ID is " & RS![Customer name] & ".", vbOKOnly + vbInformation, "Customer To update"
End If
RS.Close
DB.Close
Set RS = Nothing
Set DB = Nothing

如您所见,我评论了两个 SQL 查询导致表单出现错误,我无法通过。

有人可以帮我吗?

最好的问候

【问题讨论】:

  • 小心你如何描述这个问题......你的意思是“如果最后一次更新大于 30 天,则选择记录”?根据不同月份进行选择可能会导致您在 2015 年 1 月 31 日更新记录。
  • 实际上我想做的是它会弹出一个消息框,显示公司名称,其中“上次更新”日期超过一个月。 ,实际上听起来很简单,但我无法完成:s
  • 首先,您没有提及您的代码所在的位置,因此更难知道您想要什么。其次,您是否意识到您的代码将只显示第一条记录,因为您从不遍历记录集?最后,正如我之前问过的,你对一个月的定义是什么? 30天或更长时间?月份

标签: sql date ms-access vba


【解决方案1】:

试试这个-

SQL = "SELECT * FROM Beheer WHERE DateDiff('m',[Last update] , Date()) >= 1"

解释: 这只会为您提供经过的月数等于或大于 1 的记录....

函数 DateDiff 需要成为查询的一部分 - 而不是您编写的代码的一部分......

你写的:

Me.[Last update]

使代码在名为“Last update”的表单上搜索一个控件

希望能帮到你。

【讨论】:

猜你喜欢
  • 2018-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 2011-05-23
  • 2021-11-20
  • 2022-11-24
  • 1970-01-01
相关资源
最近更新 更多