【问题标题】:Access sql pass through query change user访问sql通过查询更改用户
【发布时间】:2017-04-21 09:59:56
【问题描述】:

当我的同事突然去世时,我继承了几个 Access 数据库。这些包含通过我无法运行的查询的 sql 传递,因为他们正在使用他的存储密码寻找他的 odbc 连接。如何更改与我的连接以运行查询?

【问题讨论】:

    标签: ms-access odbc pass-through


    【解决方案1】:

    在查询属性窗口中,应该有一个名为“ODBC Connect Str”之类的字段。该值将如下所示:

    ODBC;DSN=DatabaseName;UID=HisUserID;PWD=HisPassword;maybeOtherStuffHere
    

    只需将 UID 和 PWD 值更改为您的值。您必须为每个查询执行此操作。

    为此类事情创建一个服务帐户也是一个好主意,这样您就不会在有人离开或无法访问时遇到问题。

    【讨论】:

    • 这成功了!非常感谢!此语句仅在我处于 sql 视图时显示在属性窗口中。
    • 很高兴我能帮上忙!如果这解决了您的问题,请随时单击我的答案左侧的复选标记
    【解决方案2】:
    Public Sub FixOwner()
        Dim oTable As TableDef
        For Each oTable In CurrentDb.TableDefs
            If oTable.Connect <> "" And InStr(oTable.Connect, "hisUserID") > 0 Then
                oTable.Connect = Replace(oTable.Connect, "HisUserID", "YourUserID")
                oTable.Connect = Replace(oTable.Connect, "HisPassword", "YourPassword")
            End If
        Next
    
        Dim oQuery As QueryDef
        For Each oQuery In CurrentDb.QueryDefs
            If oQuery.Connect <> "" And InStr(oQuery.Connect, "hisUserID") > 0 Then
                oQuery.Connect = Replace(oQuery.Connect, "HisUserID", "YourUserID")
                oQuery.Connect = Replace(oQuery.Connect, "HisPassword", "YourPassword")
            End If
        Next
    End Sub
    

    【讨论】:

    • 谢谢,但我不知道他的密码,所以这行不通。
    猜你喜欢
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多