【发布时间】:2013-06-18 23:28:08
【问题描述】:
我们最近创建了 Access DB 后端并将其迁移到 SQL Server。我正在尝试使用 VBA 代码创建与 SQL Server 后端的连接并运行直通查询,并将结果存储在 VB 记录集中。当我尝试这个时,查询没有通过。
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strConnect As String
strConnect = "DRIVER=SQL Server;SERVER=55.55.55.55 SQLExpress;UID=UserName;PWD=Password"
Set db = OpenDatabase("DBName", dbDriverNoPrompt, True, strConnect)
Set rs = db.OpenRecordset("SELECT GetDate() AS qryTest", dbOpenDynaset)
MsgBox rs!qryTest
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
我遇到的问题是完全合适的GetDate() SQL Server 函数返回运行时错误 3085“表达式中的用户定义函数 'GetDate'”。如果我在 MS-Access Query Builder 中创建与传递相同的查询,在 VBA 代码之外,它运行良好并返回服务器日期和时间,只有在代码中它没有正确传递。
【问题讨论】:
-
“将我们的 Access DB 后端迁移到 SQL Server”。我现在的建议是从 DAO 迁移到 ADO 记录集,如果您需要在熟悉的视图中进行查询,那么直通非常好,但如果只需要在代码中,那么 ADO 就是要走的路:)
-
这是最终的计划。不幸的是,我所处的环境中,我是唯一的技术人员,负责管理 4 年前由其他人构建的数据库,并且随着我的进展不断增加。一步一步,但计划是过渡到 ADO.... 最终!
标签: sql-server ms-access vba