【发布时间】:2016-07-27 18:00:05
【问题描述】:
现在,我有一个数据库,带有一个 SQL Server 后端和一个 MS Access 前端。在一种形式上,我的用户正在经历缓慢的加载时间来显示它。该表单本质上是查看用户是谁(根据他们的登录 ID,这部分有效),查看他们的访问权限(只读、v.更新等;这也有效),然后拉取他们被允许的项目根据他们的访问权限查看(这是我认为运行缓慢的部分)。
为了让这个表单加载得更快,我觉得将最后一部分,即拉取他们允许查看的项目的部分移动到 SSMS 存储过程应该可以加快表单的加载速度。
我在 SSMS 中编写了存储过程,并且我在调用存储过程的“表单加载”事件上有代码。我面临的问题是让存储过程的结果成为表单的记录源。我试过 Me.RecordSource,但这似乎不起作用。下面是调用存储过程的代码副本:
这与调用 SP 的代码不同,因为我已经有了调用它的代码,但是,我需要 SP 的结果作为 MS Access 表单的记录源。
任何帮助或想法将不胜感激! (例如,我想尝试使用临时表作为记录源...)
Dim rs1 As ADODB.Recordset
Dim cmd As ADODB.Command
Dim prm As ADODB.Parameter
cn.ConnectionString = "DRIVER=SQL Server;SERVER=SERVERNAME;APP=Microsoft Office XP;WSID=MYCOMPUTER;DATABASE=dbname;Trusted_Connection=Yes;"
cn.Open
Set cmd = New ADODB.Command
Set rs1 = New ADODB.Recordset
With cmd
.ActiveConnection = cn
.CommandType = adCmdStoredProc
.CommandText = "dbo.ProcProjectSelection"
Set prm = .CreateParameter("@xID", adVarChar, adParamInput, 10, Me.txtNetworkID)
.Parameters.Append prm
End With
如果我输入: 设置 Me.RecordSource = rs1 在“结束于”之前,我收到一条错误消息,上面写着“无效使用属性”
【问题讨论】:
-
这与调用 SP 的代码不同,因为我已经有了调用它的代码,但是,我需要将 SP 的结果作为 MS Access 表单的记录源。跨度>
-
可能是参数无效。你能用和传查询一样的参数测试存储过程吗。
标签: sql sql-server ms-access stored-procedures