使用 Access 2010 作为 SQL Server 数据库的前端

Hom*_*lli 4 sql-server ms-access

我必须非常快速地开发一个应用程序。我选择 SQL Server (2012) 作为数据库后端,我将在后端编写所有存储过程、触发器等。

但是,对于 UI(登录、报告等),我使用 Access 2010 作为前端。我对 Access 和 SQL Server(熟悉其他数据库)都很陌生。

目标是让数据库驻留在服务器上,并让客户端连接到在其计算机上本地运行的 Access 2010 实例。

我正在寻找一个快速教程,向我展示如何使用 Access 前端的 SQL Server 对象(我相信它称为链接)-任何有用资源的链接都会非常有帮助,因为我似乎找不到任何有用的东西(我可能会使用错误的关键字进行搜索)。

Alb*_*lal 5

假设您在 SQL Server 上构建了所​​有表和数据,那么在 Access 中将 Access 链接到该数据库是一件简单的事情。

\n\n

为了节省开发时间,您可以继续使用 Access 简单方法,即使用绑定到这些表的表单。只要您启动具有某种条件(例如发票编号)的表单,那么该绑定表单只会将 SQL Server 中的一条记录拉入该表单。(因此需要为该表单编写或使用存储过程等)。您在 SQL Server 中内置的任何触发器等都将运行,而无需您从 Access 端执行任何操作。

\n\n

因此,在 Access 中构建的平面简表单(绑定到 Access 中包含 100 万行的表)不需要任何 \xe2\x80\x9cspecial\xe2\x80\x9d 代码 \xe2\x80\x93 只需确保启动表单与 Access 提供的 \xe2\x80\x9cwhere\xe2\x80\x9d 子句一起使用,该表单只会拉取 + 加载一条记录。

\n\n

因此,您过去在 Access 中使用的 99% 的正常开发流程将继续有效。对于构建编辑此类数据的表单来说,大多数情况下使用 SQL Server 并不会带来太大改变。

\n\n

但是,对于报表和一些查询+搜索数据等的表单,或者一些需要 \xe2\x80\x9cprocess\xe2\x80\x9d 数据的 VBA 代码,您最自由地调用存储过程。您只需在 Access 中创建传递查询即可。使用该 T-SQL 的 VBA 代码如下所示:

\n\n
Currentdb.QueryDefs("MyRawt-sqlPassThoughquery").Execute\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者

\n\n
with CurrentDb.QueryDefs("MyPass") \n     .SQL = "exec sp_myProc" \n     .Execute\nend with\n
Run Code Online (Sandbox Code Playgroud)\n\n

过去,对于大多数访问应用程序,您可能使用喜欢的表 \xe2\x80\x93 这些链接表可以是 Access 文件(后端)、Oracle 或 SQL Server \xe2\x80\x93 实际应用程序的工作方式以及对于所有情况来说,功能实际上都是相同的。(因此,如果您熟悉 Oracle 或 SQL Server,那么您需要从 Access 端了解 \xe2\x80\x9c 特定的 \xe2\x80\x9d 内容 \xe2\x80\x93 ,那么使用 Access 作为前端工作得很好,Access 中使用的典型开发方法将保持典型。

\n\n

这是一篇概述链接过程的文章:

\n\n

https://support.office.com/en-us/article/Import-or-link-to-SQL-Server-data-A5A3B4EB-57B9-45A0-B732-77BC6089B84E?ui=​​en-US&rs=en-US&ad=美国&来自AR=1

\n\n

请记住,您将看到许多讨论 ADP 项目的文章 - 自 Access 2010 以来,它们已被弃用,并且我不建议将 ADP 项目与 Access 一起使用 - 所以要小心,因为许多讨论 Access + SQL Server 的文章围绕 ADP 项目构建,如前所述,不应再使用。

\n