现在已经研究了一个星期,我仍然无法解决这个问题。我创建了一个 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 中(可能是错误/缺少权限)?
我提前感谢您的帮助!问候,戴夫。