存储过程/触发器
ACCESS通过VBA动态设置传递查询的值
2017-09-09 13:57:36

在Access与Sqlserver交互使用的过程中,如何把窗体中输入的参数传入到动态查询中呢?

ACCESS中创建了窗体,在窗体内的文本框中输入参数,传递给SQLserver的存储过程中,返回记录集,在生成报表。

这里可以通过ACCESS的传递查询执行SQL的存储过程

    CSDN上面ACCESS版网友wangtiecheng给出下面的代码:

'更改传递查询的SQL语句 Public Sub ChangeSQL(strPassThroughQueryName As String, strPassthroughSQL As String)     '1、初始化              Dim cat As New ADOX.Catalog     Dim Pro As ADOX.Procedure     Dim Cmm As New ADODB.Command          '2、判断输入参数的有效性     If strPassthroughSQL = "" Or Len(strPassthroughSQL) = 0 Then Exit Sub          Set cat.ActiveConnection = CurrentProject.Connection                '使用本地连接 CurrentProject.Connection     Set Pro = cat.Procedures(strPassThroughQueryName)     Set Cmm = Pro.Command     Cmm.CommandText = strPassthroughSQL     ' Cmm.CommandTimeout = 300     Set Pro.Command = Cmm          '3、更改 PassThrough 串成功          Set cat = Nothing     Set Pro = Nothing     Set Cmm = Nothing End Sub

  在ACCESS中创建一个新的模块(模块名不能与sub名相同),拷入代码.(注意:工具-引用,Microsoft ADO Ext. 2.8 for DLL and Security打勾.  然后在执行存储过程前的代码中调用ChangeSQL子函数即可修改传递查询的SQL.