【发布时间】:2016-04-19 10:46:33
【问题描述】:
这似乎是一项简单的任务,但我失败了,并且没有找到解决我的问题的方法:我在 Access 2010 中有一个带有日期/时间列的本地表,我想更新 SQL Server 表中的列数据类型date。
将日期/时间值直接发送到 SQL Server 表失败,与使用此 VBA 函数转换日期/时间列相同:
Function DateForSQL(dteDate) As String
DateForSQL = "'" & Format(CDate(dteDate), "yyyy-mm-dd") & "'"
End Function
给了
DateForSQL(Date()) = '2016-01-14'
我认为应该可以工作。
更新命令是这样的:
UPDATE SQL_table
INNER JOIN local_table ON SQL_table.ID = local_table.ID
SET SQL_table.DateField = DateForSQL(local_table.DateField)
但它在 Access 中再次失败并出现类型转换错误。
即使将 SQL Server 表列更改为 datetime,我也会遇到同样的错误。
向 SQL 发送类似“14/01/2016”或“01/14/2016”的字符串也是如此。
我唯一能做的——最终——就是在 Access 中将日期时间更改为文本并重试,但这不是唯一的解决方案。
有什么帮助吗?
谢谢 迈克尔
【问题讨论】:
标签: sql-server vba datetime ms-access-2010