【发布时间】:2020-12-03 07:29:47
【问题描述】:
我最近将 Access 后端数据库升级到 SQL Server 后端和 Access 前端。大多数事情都在工作,但我遇到了表单上的书签问题。该表单显示 3 个日期列,我使用 VBA 转到其中一个列的第一个日期,该日期是今天或大于今天的打开事件。
这是仍在 Access 前端和后端数据库中工作的代码
Private Sub Form_Open(Cancel As Integer)
' Find the record that matches the control.
Dim rst As DAO.Recordset
Dim strCriteria As String
strCriteria = "[PayPeriodPaidDate] >=Date()"
Set rst = Me.RecordsetClone
rst.FindFirst strCriteria
Me.Bookmark = rst.Bookmark
Set rst = Nothing
End Sub
现在我已将其转换为 SQL Server Express,当表单打开时没有任何反应。它只是直接进入表单的第一条记录。任何帮助将不胜感激。
【问题讨论】:
-
尝试在数字或文本字段而不是日期/时间字段上进行测试搜索。问题可能与日期的存储方式有关。
-
双重、三重检查该列在链接表中是否显示为日期时间。如果不是,则要么将 sql server 上的数据类型更改为 datetime(从 datetime2),要么使用更新的 ODBC 驱动程序重新链接。如果将 sql 日期列修改为 datetime(从 datetime2 开始),请确保重新链接 Access 表,然后重试。
标签: sql ms-access sql-server-express bookmarks