sql-server - 无法将 MS Access 前端连接到 SQL Server 后端
问题描述
我已从 MS Access 将数据导入 SQL Server Express,并尝试从 Access 前端文件链接到数据。
我尝试了几种不同的登录类型,但每种都给了我相同的错误:
查找指定的服务器/实例时出错
请帮忙。
解决方案
假设 SQL 服务器的本地实例?
默认值通常是 YOURCOMPUTERNAME\SQLEXPRESS。
但是,您可以使用“。” (点)代替您的计算机名称。所以,服务器名称应该是 .\SQLEXPRESS
一些事情:当您设置并尝试连接时?始终创建一个 FILE dsn。造成这种情况的原因很多,但一个非常好的原因是,Access 将默认创建一个 DSN-LESS 连接。这种方法是首选,因为那时 Access 会记住设置,并且不使用或不需要外部设置(例如注册表甚至文件 (dsn)。如果您连接到网络上的 SQL 服务器?那么您可以分发访问权限应用程序到每个工作站,它将“正常工作” - 所有这些都无需您设置 DSN 或使用每个工作站上的 ODBC 管理器做任何事情。所以,一个很好的提示和习惯。所以,使用 FILE dsn(如果你链接表时遵循默认提示,FILE dsn 无论如何都是默认的)。
下一步:确保 sql server 浏览器服务正在运行。过去通常不需要这样做,但现在建议这样做。该服务是这样的:
一旦确定该服务正在运行?
确保你启用了命名管道——事实上我也会启用 TCP/IP。可以在这里找到:
好的,现在下一个问题:您使用的是 SQL 服务器登录,还是 Windows 身份验证?
现在,因为这是您的本地独立机器?让我们一起去windows吧。
如前所述,如果您安装了 SSMS,请查看它是否可以连接。这不仅是一个快速 + 简单的快速测试,而且它还会为您提供有关服务器名称 connect 的提示。(这有助于您在尝试连接 Access 时 - 您可以看到 SSMS 的工作原理 - 更好的是 SSMS 通常会为您找出正确的计算机名称。
因此,从 Access 中,您现在从功能区“外部”数据中选择,然后导入和链接组 - 选择 ODBC。
连接向导将启动。选择“链接到数据源”。
此时,开始启动的面板与您尝试从控制面板使用 ODBC 管理器时看到的面板相同 - 但在大多数情况下,这条路更好,因为 Access 将正确启动 x32 或 x64 位 ODBC 管理器(它为您做出正确的决定)。
因此,您使用的是 DSN 名称,但只是打新。现在您必须选择一个 ODBC(用于 sql server)驱动程序。
现在,我会尝试“SQL server”。您可以选择 SQL Server Native Client 11(或更高版本,如果您看到的话)。任何一个都可以。请记住,SQL Server 驱动程序选择存在于所有计算机上 - 因此对于将来分发到其他工作站,这是一个不错的选择。默认情况下不安装本机 11(或更高版本)驱动程序,如果您想在将应用程序移动或分发到其他工作站时使用该驱动程序,则必须将其安装在其他工作站上。
接下来,现在您可以输入此连接的名称(myTestcon 或其他)。打完。
您现在应该看到/处于此屏幕:
服务器名称的下拉菜单应该出现并且可以工作(这需要 30 秒)。因此,它应该向您显示一个服务器名称和一个 sql 实例。
接下来,现在您必须选择登录类型
因为这是本地独立计算机?嗯,你可以选择windows登录,或者sql登录。作为本地计算机 - 选择默认值 - windows auth。
下一个。
现在非常非常重要 - 确保你在这里更改/选择正确的数据库 - 很多人跳过或错过这个 - 这很痛苦!
这个:
因此,请确保将默认值从“主”选择/更改为您在将数据发送到 sql server 时创建的数据库。
接下来——(可以试试测试数据源)。“好的”。
现在你回到了完全相同的起始面板。您的“名称”应默认用于文件连接。这个:
所以,现在只需单击确定。
然后,您可以选择要链接到的表。
推荐阅读
- java - 线程写入本地txt文件的问题
- amazon-web-services - AWS 中的 vCPU 是什么
- php - 在 Codeigniter 中将 php 版本(5.5.38)升级到最新版本 7.3 的问题
- android - 如何针对多种类型检查 IS
- sql - 将 CSV 支持的数据帧转换为配置单元表会失去多行支持
- r - dplyr 中的 stringi 函数
- json - 无法访问打字稿中的嵌套 JSON 数据 - Angular6
- android - android webview 显示其字体的默认字体系列是什么?
- schedule - 无法选择日程
- c++ - 如何从用户接收多个字符串并将这些字符串添加到 C++ 中的数组中?