未绑定表单的Recordsource与Recordset

时间:2016-05-17 15:08:59

标签: ms-access access-vba adodb recordset adp

我正在创建一个使用Access ADP(Access Data Project)的应用程序。作为前端和SQL Server作为后端。我正在使用ADODB进行连接。我一直在研究是否对表单使用RecordSource属性或Recordset属性。我的目标是创建一个未绑定的应用程序。

我无法得到关于使用哪一个的明确答案。到目前为止,我能够做的是将记录源设置为存储过程,如下所示

 strSQL = "exec STOREDPROCEDURE "
 Me.Form.RecordSource = strSQL

我也可以打开与记录集相同的SQL str,设置表单记录集,然后像这样关闭记录集

Dim Cmd As New ADODB.Command
Dim rs As New ADODB.Recordset

   Set rs = New ADODB.Recordset

   strSQL = "exec STOREDPROCEDURE"

   rs.Open strSQL, CurrentProject.Connection

Set Me.Recordset = rs
rs.Close

有人可以向我解释2之间的区别是哪种方法是首选?我看到它的方式,数据在传递回应用程序之前在SQL Server上被过滤,所以我没有看到使用Recordset或Recordsource之间的区别。

1 个答案:

答案 0 :(得分:1)

使用.adp,您将使用记录源,而不是记录集,尽管您可能依赖于正在运行的访问版本,但也需要设置输入参数属性。

Me.RecordSource = "EXEC schema.storedprocedue [arguments]"

将适用于表单。

我要做的一个评论是 - 为什么一个.adp? MS Access 2013&稍后将不会运行adp,并且Access 2010很可能在未来几年内不再受支持。