现在已经进行了一个星期的研究,我仍然无法解决此问题。我创建了一个Excel VBA用户表单,该表格将数据插入SQLOLEDB连接(SQLEXPRESS 2017(时,当单击命令Button(称为" Save"(。本地(Localhost(的工作就像魅力一样。从列中的所有数据成功地插入了SQL DB表中。没有任何错误。
但是,当任何客户端尝试执行相同的操作时,我会获得运行时错误'-2147467259(80004005(':[dbnetlib](connectionOpen(connect(connect(((。SQL Server不存在或拒绝访问。
这是我到目前为止尝试的:
- 我已经在SQL Server Management Studio中为客户端创建了登录名。
- 我已授予客户端的dbo.tbo. 插入权限
- 我确保在SQL Server Management Studio中的服务器属性中检查"允许与此服务器的远程连接"。
- 我添加了Inbound&我的Windows防火墙中的出站规则在我的计算机中打开端口1433,这是服务器已安装的地方。
- 我添加了Inbound&Windows防火墙中的出站规则在我客户的计算机中打开端口1433。
- 我已经检查了我的ODBC数据源管理员(32& 64位(,并且发现我的客户端没有SQL Server本机客户端RDA 11.0。我研究了,不再可以安装此版本。我还发现了有关SQL Server Compact 3.5的信息,该SQL Server Compact 3.5据说是替换为Ado.net的称为同步服务的RDA。我同时安装了32&我的计算机和客户中的64位版本。
- 我还尝试过使用自己的登录信息建立远程桌面连接,但是当我测试用户表单或运行测试仪时。UDL尝试连接到此服务器,我收到相同的错误消息。
这是我用来建立此连接的字符串:
conn.Open "Provider=SQLOLEDB;Data Source=PCNAMESQLEXPRESS;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中(也许是错误的/丢失的权限(?
我感谢您提前的帮助!dave。
您必须使用 IP地址进行连接,例如:
Data Source=101.101.101.101SQLEXPRESS;
- 在SQL Server Express所在的机器上打开DOS提示,并键入 ipconfig
- 获取IP地址并在您的连接字符串中使用它
localhost 只需将您的自己的计算机引用您即可。因此,除非您在每个客户端计算机上都运行SQL Express,否则它将无法正常工作。
您需要使用适当的计算机名称或 IP地址。
SQL Express在 Windows Server上运行?
我很确定,如果您希望其他计算机与您的SQL Server Express数据库交谈,这是一项要求。可以在本地进行测试是可以的,但是您需要在实际运行 Windows Server 的PC上安装SQL Server,以便能够正确接受和路由连接。因此,当SQL Server表示免费时,如果您还没有一个,则必须为Windows Server付款。
如果没有,我很想知道要与我的IT部门打交道,以便我可以完成一些工作。
我能够解决这个问题。这与IP有关。我仅使用了我的局部连接IP地址,没有 sqlexpress以及我在连接字符串中SQL Server Management Studio中创建的新用户:
conn.open" provider = sqloledb; data source = ipaddress; onirter catalog = databasename; integrated security = sspi; user id = mysqltest; password; passwork = mypassc0de;
我很高兴。