【问题标题】:Link an ODBC table in Access 2007在 Access 2007 中链接 ODBC 表
【发布时间】:2008-11-26 14:33:56
【问题描述】:

我有一个 Access 2002 应用程序,它通过 ODBC 将 Oracle 表与以下代码链接:

Set HRSWsp = CreateWorkspace("CONNODBC", "", "", dbUseODBC)
Set HRSConn = HRSWsp.OpenConnection("HRSCONN", dbDriverPrompt, , "ODBC;")
DoCmd.TransferDatabase acLink, "Database ODBC", HRSConn.Connect, acTable, "SCHEMA.TABLE", "TABLE", False, True

不幸的是,Access 2007 不再接受这种语法,说不再支持 ODBCDirect(运行时错误 3847)并建议使用 ADO 而不是 DAO。 有人可以告诉我如何修改此代码以满足 Access 2007 的要求吗?

【问题讨论】:

    标签: ms-access odbc ms-access-2007


    【解决方案1】:

    我发现我可以通过一种非常简单的方式解决我的问题,即删除前两个语句并以这种方式修改第三个语句:

    DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DRIVER=Microsoft ODBC for Oracle;SERVER=myserver;UID=myuser;PWD=mypassword", acTable, "SCHEMA.TABLE", "TABLE", False, True
    

    这样,表格将被链接而无需提示任何内容。如果我将连接字符串保留为简单的“ODBC”,Access 将要求指定 odbc 连接和其他缺少的参数,从而获得与前面的语句相同的内容。

    【讨论】:

    • 是的,这非常简单:)
    【解决方案2】:

    试试这个:

    Dim tbl As New ADOX.Table
    Dim cat As New ADOX.Catalog
    
    cat.ActiveConnection = _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[x:\your_access_db.mdb];Jet OLEDB:Engine Type=4"
    
    tbl.NAME = "[Access_table_name]"
    
    Set tbl.ParentCatalog = cat
    
    tbl.Properties("Jet OLEDB:Create Link") = True
    tbl.Properties("Jet OLEDB:Link Provider String") = "ODBC;Driver={Microsoft ODBC For Oracle};Server=OracleServerName;Uid=[user];Pwd=[password];"
    tbl.Properties("Jet OLEDB:Cache Link Name/Password") = True
    tbl.Properties("Jet OLEDB:Remote Table Name") = "[Oracle_Schema].[Table]"
    
    cat.Tables.Append tbl
    cat.ActiveConnection.Close
    

    用您的信息替换括号中的文本 ([])。

    【讨论】:

    • 我找到了一种更短的方法来做我需要的事情。无论如何,我很感谢你的帮助。谢谢!
    • 这段代码没有意义。它使用 ADO 创建 ODBC 链接表。 DAO 更适合这种情况。
    • “不幸的是,Access 2007 不再接受这种语法,说不再支持 ODBCDirect(运行时错误 3847)并建议使用 ADO 而不是 DAO”...我只是想帮助 OP 解决他们的要求...
    猜你喜欢
    • 2011-06-06
    • 1970-01-01
    • 2011-04-09
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多