0

现在已经研究了一个星期,我仍然无法解决这个问题。我创建了一个 Excel VBA 用户表单,该表单在单击命令按钮(称为“保存”)时将数据插入 SQLOLEDB 连接(SQLEXPRESS 2017)。在本地(本地主机)它就像一个魅力。列中的所有数据都成功插入到 SQL DB 表中。没有任何错误。

但是,当任何客户端尝试执行相同的操作时,我会收到运行时错误“-2147467259 (80004005)”:[DBNETLIB](ConnectionOpen (connect()).]SQL Server 不存在或访问被拒绝。

这是我到目前为止所尝试的:

  • 我在我的 SQL Server Management Studio 中为客户端创建了一个登录名。
  • 我已授予客户端对 dbo.Table 的插入权限。
  • 我已确保在 SQL Server Management Studio 的服务器属性中的“连接”中选中“允许远程连接到此服务器”。
  • 我在我的 Windows 防火墙中添加了入站和出站规则,以在我的计算机中打开端口 1433,这是安装服务器的位置。
  • 我在 Windows 防火墙中添加了入站和出站规则,以在我的客户端计算机中打开端口 1433。
  • 我检查了我的 ODBC 数据源管理器(32 位和 64 位),发现我安装了我的客户端没有的 SQL Server Native Client RDA 11.0。我研究了一下,无法再安装这个版本了。我还发现了 SQL Server Compact 3.5,据说它带有 RDA 的替代品,称为 ADO.NET 的同步服务。我在我的计算机和客户端中都安装了 32 位和 64 位版本。
  • 我也尝试过使用我自己的登录信息建立远程桌面连接,但是当我测试我的用户表单或运行我的测试器时。UDL 尝试连接到此服务器我收到相同的错误消息。

这是我用来建立此连接的字符串:

conn.Open "Provider=SQLOLEDB;Data Source=PCNAME\SQLEXPRESS;Initial Catalog=DATABASENAME;Integrated Security=SSPI;Trusted_Connection=Yes"

conn.Execute "INSERT INTO dbo.TABLENAME (COLUMNNAME, COLUMNNAME2) values ('" & sColumnVariable & "', '" & sColumnVariable2 & "')"

我的问题是:

我如何设法让客户端成功插入到这个 SQL 数据库/表中?

问题出在哪里?它是否位于我的计算机设置中?它是否位于我的客户端计算机设置中?它是否位于我的 SQL Server Management Studio 中(可能是错误/缺少权限)?

我提前感谢您的帮助!问候,戴夫。

4

3 回答 3

0

您必须使用IP 地址进行连接,例如:

  Data Source=101.101.101.101\SQLEXPRESS;
  1. 在 SQL Server Express 所在的计算机上打开 DOS 提示符并键入ipconfig
  2. 获取 IP 地址并在您的连接字符串中使用它
于 2018-02-23T18:27:39.890 回答
0

LocalHost只是指您自己的计算机。因此,除非您在每台客户端计算机上运行 SQL Express,否则它将无法正常工作。

您需要使用正确的计算机名称IP 地址

SQL Express 是否在Windows 服务器上运行?

如果您希望其他计算机与您的 SQL Server Express 数据库通信,我很确定这是一个要求。用于本地测试很好,但您需要在实际运行Windows Server的 PC 上安装 SQL Server,才能正确接受和路由连接。因此,虽然 SQL Server Express 是免费的,但如果您还没有 Windows Server,您将不得不为 Windows Server 付费。

如果没有,我很想知道如何与我的 IT 部门打交道,这样我就可以完成一些事情。

于 2018-02-24T01:36:52.980 回答
0

我能够弄清楚这一点。它与IP有关。我只使用了我的本地连接 IP 地址,没有 \SQLEXPRESS 以及我在连接字符串中在 SQL Server Management Studio 中创建的新用户:

conn.Open "Provider=SQLOLEDB;数据源=IPADDRESS;初始目录=DATABASENAME;集成安全=SSPI;用户ID=MySQLTest;密码=myPassc0de;

我太高兴了

于 2018-02-24T02:40:56.030 回答