传递查询如何在Access中使用SQL Server数据库引擎进行查询

Posted Access开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了传递查询如何在Access中使用SQL Server数据库引擎进行查询相关的知识,希望对你有一定的参考价值。

hi,大家好,我是Edon


今天,我要大家分享一个与SQL Server相关联的示例。


使用Access进行应用系统开发,基于安全性、扩展性等多种原因,我们可能会使用SQL Server作为后台数据库。如果不使用ADP(ADP的方式已经淘汰了,可以不再学习),客户前端就只能通过链接表的方式连接到SQL Server数据库。但用链接表方式时,由于对数据的处理依然要通过Access 的Jet引擎来进行的,所以当数据量很大的时候,性能还是很差。这个时候我们就可以用到SQL Server了。

 

Access中让SQL Server来进行查询的方式就是传递查询。假如我们需要进行一个选择查询,可以先将查询在SQL Server中定义为一个带参数的存储过程,然后在Access中通过传递查询来返回存储过程查询得到的结果。但在传递查询中不支持VBA,所以我们不能使用类似于“Forms!窗体名!控件名”的方式将条件绑定到窗体控件作为变量。对于此种情况,我们可以在每次通过传递查询进行查询的时候,用代码自动重写查询的SQL属性来变通实现。

 

具体示例步骤如下:

0 1
在SQL Server中创建一个带参数的存储过程


我们先在SQL Server创建一个带参数的存储过程,文中的示例用的是SQL Server 2012版本。这里我们来查询对应产品的信息。


【传递查询】如何在Access中使用SQL Server数据库引擎进行查询

CREATE PROCEDURE SP_Product
(@ProductName AS NVARCHAR(100))
AS
SELECT *
FROM dbo.tbl_ProductList
WHERE ProductName LIKE @ProductName;
GO


0 2
在Access中创建查询


a.在Access中新建一个查询,不选择任何表,然后通过点击菜单——查询——SQL 特定查询——传递查询,将查询更改为传递查询:


【传递查询】如何在Access中使用SQL Server数据库引擎进行查询

b.点击工具栏上【传递查询】如何在Access中使用SQL Server数据库引擎进行查询的按钮,显示出查询属性窗口;


c.在查询属性窗口中,点击“ODBC 连接字符串”属性右边的生成器,通过向导设置到SQL Server的连接:


【传递查询】如何在Access中使用SQL Server数据库引擎进行查询


d.成功连接到SQL Server数据库后的效果如下:


【传递查询】如何在Access中使用SQL Server数据库引擎进行查询

这里的配置是我自己电脑上的信息,大家在测试时需要替换成自己的信息。

如何链接SQL Server数据库请查询我之前的文章:


0 3
查询中添加传递代码


再将该查询的中添加传递查询的代码:


【传递查询】如何在Access中使用SQL Server数据库引擎进行查询


execute SP_Product @ProductName='%'


0 4
创建窗体


创建一个窗体,创建一个用于输入查询内容的名为“查询内容”的文本框,和一个用于执行查询的名为“查询”的命名按钮,以及一个用于显示查询结果的子窗体,这里我们直接用查询对象作为子窗体的来源对象:


【传递查询】如何在Access中使用SQL Server数据库引擎进行查询


0 5
添加代码


接下来在窗体的加载事件过程和按钮的单击事件过程中,添加代码:


Private Sub Command0_Click()
CurrentDb.QueryDefs("qry结果").SQL = "execute SP_Product @ProductName='%" & Me.txt查询内容 & "%'"
Me.Child1.Requery

End Sub

Private Sub Form_Load()
CurrentDb.QueryDefs("qry结果").SQL = "execute SP_Product @ProductName='%'"
Me.Child1.Requery
End Sub


0 6
运行测试



窗体的加载事件代码用于打开窗体时查询所有记录,效果如下:


【传递查询】如何在Access中使用SQL Server数据库引擎进行查询

在输入框中输入要查询的值,然后单击“查询”按钮,我们就能得到由SQL Server数据库引擎查询得到的记录:


【传递查询】如何在Access中使用SQL Server数据库引擎进行查询

 

好了,大家快去试一下吧!


大家如果有access开发或者企业内训的需要可以后台联系我们。




以上是关于传递查询如何在Access中使用SQL Server数据库引擎进行查询的主要内容,如果未能解决你的问题,请参考以下文章

如何使 MS Access 直通查询在 SQL Server 中正确运行

如何从 Access 2010 中的 SQL 存储过程返回多个记录集

如何在连接到 MS SQL 服务器的 MS Access“Pass Trough”查询中使用组合框输入正确编写 WHERE 语句

组合查询时的 SQL-server 语法错误(传递查询)

如何在access中执行sql语句

更新查询的 MS Access SQL 错误