允许共享驱动器上的其他人使用 access odbc 连接

Allow others on shared drive to use access odbc connection

我有一个包含 ADD 和 UPDATE 查询的 Access 文件,该文件链接到某种 SQL 数据库(Orderwise)。我正在构建报告和其他东西,但我们公司的其他人最终会使用它 - 可能是各种各样的人 - 因此我把它放在共享驱动器上。

然而,当我从另一台计算机访问它时(试图向 Ops 经理演示)它失去了与 SQL 数据库的连接,尽管两台计算机都可以访问该驱动器。我对此很陌生,但我认为它所依赖的 ODBC 文件/连接位于构建数据库的计算机中的某个位置 - 错误消息是 ODBC connection to 'Orderwise 2' failed..

我已经尝试研究它但没有发现任何非常确定的东西,它似乎涉及 .mdb 文件但我不知道它们在哪里,并且通过控制面板设置搜索没有给出将 odbc 移动到共享驱动器的选项。

如何共享此数据库以便共享驱动器上的每个人都可以使用实时数据连接?

下面是连接 SQL 数据库和 运行 命令的代码。

Private Sub cmdTest_Click()
'Add reference Microsoft ActiveX Data Objects 2.1 Library
'Fix SQL Server Connection ERROR! See below link
'https://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/
    
    'Declare variables'
        Dim objMyConn As ADODB.Connection
        Dim objMyCmd As ADODB.Command
        Dim objMyRecordset As ADODB.Recordset

        Set objMyConn = New ADODB.Connection
        Set objMyCmd = New ADODB.Command
        Set objMyRecordset = New ADODB.Recordset
        
        Dim strEmpID As String, strEmpName As String
        Dim JoiningDate As Date
        Dim eSalary As Integer
        Dim myRate As Double

    'Open Connection'
        objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=192.168.0.150;User ID=sa;Password=saDBpassword;"
        objMyConn.Open

    'Another provider
    'Provider=sqloledb;Data Source=192.168.0.150,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=myUsername;Password=myPassword;

    'Set and Excecute SQL Command'
        Set objMyCmd.ActiveConnection = objMyConn
        
        ' Insert data to SQL Database table.
        
        strEmpID = InputBox("Enter Employee ID:", "Employee ID", "HO-300")
        strEmpName = InputBox("Enter Employee Name:", "Employee Name", "Mr. SQL")
        JoiningDate = InputBox("Enter Joining Date:", "Joining Date", Date)
        eSalary = InputBox("Enter Salary:", "Salary", 10000)
        myRate = InputBox("Enter Rate:", "Rate", 11.11)
        
        objMyCmd.CommandText = "INSERT INTO [TestDB].[dbo].[tblEmpInfo] (EmpID, EmpName, jDate, Salary, HourRate) Values('" _
                                & strEmpID & "', '" _
                                & strEmpName & "', '" _
                                & JoiningDate & "', " _
                                & eSalary & ", " _
                                & myRate & ")"
                                
        
        objMyCmd.CommandType = adCmdText
        objMyCmd.Execute 'Execute SQL command

End Sub

您必须添加 ActiveX Data Objects 2.5 Library 以供参考。我正在使用 MS-Access-2013。对象引用可能因 MS-Access 版本而异。

请仔细阅读本文以排除网络服务障碍。 SQL Server Fix Error.