java 动态参数查询语句_如何使用VBA动态SQL SELECT语句调用MS Access参数查询

我搜索过MSDN,StackOverflow,SQLServer Central和太多网站 . 我已经尝试了几天,在Excel VBA代码中使用动态SQL SELECT语句找到在MS Access中执行参数查询的方法 . 我正在使用的系统与SQL Server TVF配合得非常好,但由于失去了服务器支持,我必须将其转换为Access . VBA代码首先循环访问Excel中的“输入”工作表,获取用于构建动态SQL SELECT语句的参数值和函数/查询名称 . 下面是构建连接的代码,并仅针对其中一个只需要1个输入参数的查询(有20个)调用Access Query:

Dim strSQL

' set up our connection

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\PathToDB Tables 2013-12-13.accdb;"

Set conn = CreateObject("ADODB.Connection")

conn.Open strConnection

' open the view and create the report

Set rs = CreateObject("ADODB.recordset")

Application.ODBCTimeout = 0

conn.CommandTimeout = 0

strSQL = "select * FROM "

strSQL = strSQL & strFunction

strSQL = strSQL & " (" & strParameters & ");"

'strSQL = strSQL & strOrderBy

rs.Open strSQL, conn

此时strSQL中的值是 SELECT * FROM Report_1_2_StaffAdds (#12/31/2013#);

rs.Open strSQL,conn中出现错误错误消息'FROM子句中的语法错误' .

这是MS Access查询:(查询名称为Report_1_2_StaffAdds)

PARAMETERS [previous_month] DateTime; SELECT [1_2_StaffAddsPart1].Unit, [1_2_StaffAddsPart1].Role, [1_2_StaffAddsPart1].Start_Date, [1_2_StaffAddsPart2].First_Worked, [1_2_StaffAddsPart2].Last_Worked, [1_2_StaffAddsPart1].Emp_Name, [1_2_StaffAddsPart1].Emp_Id, [1_2_StaffAddsPart2].Hours_to_Date FROM 1_2_StaffAddsPart1 INNER JOIN 1_2_StaffAddsPart2 ON [1_2_StaffAddsPart1].Emp_Id = [1_2_StaffAddsPart2].Emp_Id;

任何帮助都感激不尽 . 我相信如果我能得到答案,我可以修改它以包含最多3个输入参数,具体取决于在给定时间执行哪个Access查询 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值