Excel VBA Userform 到 SQLOLEDB 的连接在本地有效,但在远程无效 - 运行-时间错误“-2147467259 (80004005)”:[DBNETLIB]

Excel VBA Userform to SQLOLEDB Connection works Locally but not remotely - Run-time error '-2147467259 (80004005)': [DBNETLIB]

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

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

这是我目前尝试过的方法:

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

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 Database/Table?

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

在此先感谢您的帮助! 问候,戴夫。

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

  Data Source=101.101.101.101\SQLEXPRESS;
  1. 在 SQL Server Express 所在的机器上打开 DOS 提示符并键入 ipconfig
  2. 获取 IP 地址并在您的连接字符串中使用它

LocalHost 只是指给您 自己的计算机。因此,除非您在每台客户端计算机上都有 SQL Express 运行,否则它不会工作。

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

SQL Express 运行 在 Windows 服务器 上吗?

如果您希望其他计算机与您的 SQL Server Express 数据库通信,我很确定这是一项要求。用在本地测试是可以的,但是需要在实际是运行WindowsServer的PC上安装SQLServer才能够接受并正确路由连接。因此,虽然 SQL Server Express 如果免费,但如果您还没有 Windows 服务器,则必须付费购买。

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

我想通了。它与IP有关。我只使用了我的本地连接 IP 地址,没有 \SQLEXPRESS 以及我在 SQL Server Management Studio 中创建的新用户在我的连接字符串中:

conn.Open "Provider=SQLOLEDB;Data Source=IPADDRESS;Initial Catalog=DATABASENAME;Integrated Security=SSPI;User ID=MySQLTest;password=myPassc0de;

我太高兴了。