Sql server 使用筛选器将SQL Server数据链接到MS Access数据库

Sql server 使用筛选器将SQL Server数据链接到MS Access数据库,sql-server,ms-access,vba,odbc,ms-access-2016,Sql Server,Ms Access,Vba,Odbc,Ms Access 2016,我想创建一个从SQL Server数据库到MS Access数据库的链接,用于报告目的。我不需要表格中过去几年的所有数据。有没有办法通过Access VBA或MS Access工具只引入我需要的行而不是所有行?通过ODBC使用外部数据选项卡连接到Access中的SQL Server数据库,并使用Access中的SQL或创建选项卡上的查询设计器来查询所需的数据。 选择*from TABLE WHERE DATEFIELD>WHERE date这是一个参数表如何在SQL Server中工作的示例,可

我想创建一个从SQL Server数据库到MS Access数据库的链接,用于报告目的。我不需要表格中过去几年的所有数据。有没有办法通过Access VBA或MS Access工具只引入我需要的行而不是所有行?

通过ODBC使用外部数据选项卡连接到Access中的SQL Server数据库,并使用Access中的SQL或创建选项卡上的查询设计器来查询所需的数据。
选择*from TABLE WHERE DATEFIELD>WHERE date

这是一个参数表如何在SQL Server中工作的示例,可以通过Access轻松地进行更新。使用当前用户名和筛选器值更新或插入表,从而更改视图返回的行

创建表参数 usrname as NVARCHA100约束[df_load_date]默认值@@SUSER_名称 ,p值为nvarchar100 插入参数pvalue值“MytableName” 创建视图vw_测试 像 从名称所在的sysobjects中选择* 从参数中选择pvalue,其中usrname=@@SUSER\u NAME
我和我们的DBA谈过了。我要创建一个视图。cloudsafe感谢您的建议,我只是没有时间调查Access中的QueryDef,但我已经记下了它,以备将来可能使用。

是的。您可以通过在Access VBA中创建作为传递查询的QueryDef来完成此操作。它将参数传递给SQL Server并仅返回所需的行。另一种方法是在SQL Server上创建一个表,该表保存与表中的列对应的筛选条件值。您可以创建一个按此参数表过滤的视图。从Access更新参数表中的值以更改视图的结果。在SQL Server上创建仅返回所需信息的视图也是另一种方法。它还允许您完全忽略此报告不需要的任何数据列。谢谢。@LaughingVergil在MS Access中,创建视图时需要通过VBA添加索引,但我确实喜欢视图。这将返回表中的所有行,然后使用WHERE子句对它们进行筛选。它会导致网络问题和速度缓慢。你是说导入所有数据并独立查询以获得所需的行吗?如果是这样,我不想使用这种方法。我只想输入需要的行,然后查询这些行。您有权访问SQL SERVER数据库吗?如果是这样,请在SQL Server DB中创建一个视图,并通过access连接到该视图,或者让DBA为您创建该视图。我没有足够的权限创建视图。在SQL中使用where子句不会提取或获取所有行,然后进行筛选-因此,在这个问题上couldsafe是100%错误的。这包括使用+在access客户端中基于链接表构建查询。