如何创建从MDB到SQL Server的链接表



我有一个应用程序在通过无线网络访问MDB数据库时遇到问题。

一个快速的解决方案是在所有工作站上都有一个本地MDB文件,将其所有表链接到SQL Server数据库吗?

这是一种避免在应用程序中重写所有数据访问代码的方法吗?

是的,这会做得很好。我们有许多客户通过这种方式联系在一起
然而,这不是一项容易的任务。不确定所需的所有努力是否会得到回报
还有一些新的维护和部署问题。

接下来的步骤是:

1)将表迁移到SQLServer
2)创建用于连接后端数据库的ODBC数据源
3)连接您的表
4)重命名连接的表以删除模式限定符(例如"dbo_"),使链接的表与以前同名。

现在是测试所有代码的时候了
希望您不必重写任何内容。

真正的问题在于客户端PC,您需要创建一个与原始数据源匹配的ODBC数据源。此外,如果重新分发前端数据库,则可能需要从客户端PC重新连接所有表。你需要调用这样的函数:

Public Function UpdateODBCTables() As Boolean
    On Error GoTo Exit_On_Error
    Dim dbs As DAO.Database
    Dim tdf As DAO.TableDef
    Dim sDSN As String
    Dim sDB As String
    Dim sComputer As String
    Dim sDesc As String
    Dim sApp As String
    Dim strConnect As String
    sDSN = "YOUR_DSN_NAME"
    sDB = "YOUR_DATABASE_NAME"
    sComputer = "YOUR_COMPUTER_NAME"
    sApp = "YOUR_APP_NAME"
    sDesc = "DESCRIPTION_OF_YOUR_APP"
    strConnect = "ODBC;DSN=" & sDSN & ";" & _
                 "DATABASE=" & sDB & ";" & _
                 "WSID=" & sComputer & ";" & _
                 "TrustedConnection=Yes;" & _
                 "Description=" & sDesc & ";" & _
                 "APP=" & sApp ";"
    Set dbs = CurrentDb
    ' Loop over tabledefs of ODBC type and reconnect
    For Each tdf In dbs.TableDefs
        If tdf.Connect <> "" And Left(tdf.Connect, 4) = "ODBC" And Left(tdf.Name, 1) <> "~" Then
            tdf.Connect = strConnect
            tdf.RefreshLink
        End If
    Next
    dbs.TableDefs.Refresh
    UpdateODBCTables = True
Exit_On_Return:
   Set dbs = Nothing
   Exit Function
Exit_On_Error:
   MsgBox Err.Description, vbCritical, "YOUR_MESSAGE_TITLE"
   Resume Exit_On_Return
End Function

相关内容

  • 没有找到相关文章

最新更新