注册 登录
Office中国论坛/Access中国论坛 返回首页

zhuyiwen的个人空间 http://www.office-cn.net/?625 [收藏] [复制] [分享] [RSS]

日志

Access 通过传递查询执行带参数的 SQL Server 存储过程

已有 2097 次阅读2012-8-21 14:57 |个人分类:Access| 传递查询, 存储过程

使用可视化设计 Access 的 SQL Server 数据库存储过程传递查询时,无法动态指定其存储过程的参数。因此,我们只能通过 VBA 程序创建传递查询,这时我们构造该查询的 SQL 语句,以达到目的。

前提条件:
1、ODBC SQL Server 连接字符串
2、存储过程名称
3、是否有记录集返回

以下是一个示例:

Sub printMyProcResults(startDate as Date, endDate as Date)
    Dim db as DAO.Database
    Dim qf as DAO.QueryDef
    Dim rs as DAO.Recordset
    Set db = CurrentDb()        
    Dim db as DAO.Database
    Set qf = db.CreateQeuryDef("")   ' 创建临时的查询
    ' 如果存储过程有记录返回,设置为 True,否则设置为 False
    qf.ReturnRecords = True

    ' 设置 SQL Server 数据库的 ODBC 连接字符串
    qf.Connect = "ODBC;DRIVER=SQL Server;SERVER=MYSERVER;Trusted_Connection=Yes;DATABASE=MYDATABASE;"

    ' 构造传递查询的 SQL 语句,示例:myStoreProc 起始日期, 结束日期
    qf.SQL = "myStoreProc '" & Format(startDate, "dd mmm yyyy") & "'," & _
                         "'" & Format(endDate, "dd mmm yyyy") & "'" 

    ' 打开返回的记录集
    Set rs = qf.OpenRecordSet()

    ' 在立即窗口打印记录集内容
    Do While Not rs.EOF
       debug.print rs(0)
       rs.MoveNext
    Loop
    rs.Close
    ' 清理
    Set rs = Nothing
    Set qf = Nothing
    Set db = Nothing
End Sub


评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-7-4 10:47 , Processed in 0.093980 second(s), 17 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部