Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用access 2010作为SQL Server数据库的前端_Sql Server_Ms Access - Fatal编程技术网

Sql server 使用access 2010作为SQL Server数据库的前端

Sql server 使用access 2010作为SQL Server数据库的前端,sql-server,ms-access,Sql Server,Ms Access,我必须非常迅速地开发一个应用程序。我选择SQL Server(2012)作为数据库后端,我将在后端编写所有存储的过程、触发器等 但是,对于UI(登录、报告等),我使用Access 2010作为前端。我对Access和SQL Server(熟悉其他数据库)都是新手,前者使用的是Access的早期版本(早在当时) 目标是让数据库驻留在服务器上,并让客户机与在其机器上本地运行的Access 2010实例连接 我正在寻找一个快速教程,向我展示如何从Access前端使用SQL server对象(我相信它称

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

但是,对于UI(登录、报告等),我使用Access 2010作为前端。我对Access和SQL Server(熟悉其他数据库)都是新手,前者使用的是Access的早期版本(早在当时)

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

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

应该会给你一个很好的概述


搜索“.”时有大量的技术信息。

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

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

因此,绑定到Access中包含100万行的表的plane jane表单内置Access不需要任何“特殊”代码——只要确保使用Access提供的“where”子句启动表单,表单将只拉+加载一条记录

因此,您过去在Access中使用的99%的正常开发过程将继续工作。在构建编辑此类数据的表单方面,使用SQL server在很大程度上不会有什么变化

但是,对于查询+搜索数据等的报表和某些表单,或者需要“处理”数据的某些VBA代码,您可以自由调用存储过程。您只需在Access中创建一个传递查询。因此,使用该T-SQL的VBA代码如下所示:

Currentdb.QueryDefs("MyRawt-sqlPassThoughquery").Execute

在过去,对于您可能使用的大多数access应用程序,都是喜欢的表—这些链接表可以是access文件(后端)、Oracle或SQL server—实际应用程序的工作方式和功能在所有情况下都几乎相同。(因此,在Access方面,您确实不需要知道很多“特定”的事情——如果您熟悉Oracle或SQL server,那么使用Access作为前端就可以了,Access中使用的典型开发方法仍然是典型的

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


请记住,您将看到许多关于ADP项目的文章-它们自Access 2010以来就被弃用了,我不建议将ADP项目与Access一起使用-因此请小心,因为许多关于Access+SQL server的文章都是围绕ADP项目构建的,如前所述,这些项目不应再使用。

不要与lin为伍ked表。使用Access ADP(Access数据项目),它本机连接到SQL Server。遗憾的是,这种类型的访问文件正在逐步淘汰,但它是MS Access前端和SQL Server后端的最佳解决方案


Sql Server 2010?只有2005-->2008-->2008 R2-->2012-->2012 R2,现在是2014 Sql Server。@M.Ali-啊,我站出来更正。这是SS 2012。虽然这是一个非常好且非常详细的答案,但我觉得Access数据项目远远优于使用链接表和视图(以及DAO)也许,但是ADP支持现在已经有2个版本了。你必须回到Access 2010来进行ADP的工作。除此之外,你不能使用带有访问权限的ADP项目。是的,ADP正在被分解,但是看看问题的标题,并认为这显然是一个以SQL Server为中心的应用程序。我不确定,但我知道在阅读我上面的文章时,它们在ADP'sTry中得到了很好的支持。我在上面有一个调用存储过程的DAO示例。(在上面的示例中,我甚至不必在VBA中声明一个变量。因此,上面的示例使用了一个未链接的传递查询。传递槽查询确实包含一个连接字符串。您可以在代码中提供一个连接字符串,但当上面调用store proc的DAO示例如此简单和容易时,为什么还要费事呢?标题是如何表达的关于2010年,考虑到它是最后一个版本?采用3个版本和周期的开发方法的想法毫无意义。我无法想象有人将辛苦赚来的钱投资到已经贬值的应用程序选择上?我一直认为ADP很好,但忽略了.net放弃了ADO 10+几年前(他们使用ado.net-一种非常不同的beast,它基于sqlproviders-而不是原始的ado)。ADP在两个版本之前(access 2010)被降级。因此ADP项目在2010年后不受支持,甚至不被允许。下一个大问题是SQL server正在放弃oleDB支持(并且在最近的版本中已经开始降级oleDB).由于ADP使用ADO和oleDB,因此,对于那些仍然停留在行业中而将oleDB抛在后面的人来说,墙上的文字是双重的糟糕(因此,正是SQL放弃了oleDB支持).不管怎样,ADP在2个版本之前就从Access中完全删除了。ADP已经成为一个可行的选择,就像建议使用FoxPro的DOS版本一样。但请看问题的标题…这是Access 2010。链接表(DAO)是一种比ADO更古老的技术。ADP本机使用了许多链接表无法使用的SQL功能,这似乎是解决这个问题的关键。您完全正确
with CurrentDb.QueryDefs("MyPass") 
     .SQL = "exec sp_myProc" 
     .Execute
end with