【问题标题】:Use VBA Code to Update External Datasource Links使用 VBA 代码更新外部数据源链接
【发布时间】:2019-01-12 04:43:35
【问题描述】:

我希望使用 VBA 来更新外部输入文件的链接。我是一名开发人员,我使用的链接输入文件的路径将与最终用户在将其放入生产文件夹后所需的路径不同。

有没有办法使用 VBA 更新链接文件的位置?我已经有了允许用户指定输入文件位置的代码,并且该信息保存在 [Defaults] 表的 [InputFolder] 中。有没有办法使用 VBA 使用 InputFolder 字段信息更新链接表?

存储的 InputFolder 数据如下所示: C:\Users\CXB028\OneDrive - Comerica\Projects\HR\输入数据

新文件夹信息将定义一个我无权访问但用户可以访问的网络驱动器位置路径。

这是我用来定义和存储输入文件夹位置的代码:

Private Sub btnInputFldr_Click()
On Error GoTo Err_Proc

Const msoFileDialogFolderPicker As Long = 4
Dim objfiledialog As Object
Dim otable As DAO.TableDef
Dim strPathFile As String, strFile As String, strpath As String
Dim strTable As String
Dim fldr As Object

Set fldr = Application.FileDialog(msoFileDialogFolderPicker)

With fldr
    .Title = "Choose Folder"
    .Show
    .InitialFileName = "" 'DFirst("InputFolder", "Defaults")

        If .SelectedItems.Count = 0 Then

            Exit Sub

        Else
            CurrentDb.Execute "UPDATE Defaults SET InputFolder='" & .SelectedItems(1) & "';"

        End If

End With

Me.txtInputFldr.Requery

Exit Sub

Err_Proc:
    MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical, "Process Error"

End Sub

在重新定义新的输入文件夹时,使用 VBA 代码将数据库移动到生产位置后,需要重新链接链接表(外部 Excel 电子表格)。

【问题讨论】:

  • 似乎有一些很好的答案here 可以处理外部数据源的操作。看起来 TableDefs.Connect 的一些变体是您要指定新路径的内容。

标签: external-data-source


【解决方案1】:

我发现了一些非常简单和简短的代码,效果很好!!请看下文。

 On Error Resume Next
 'Set new file path location if the TABLE.FIELDNAME location exists
 Set tbl = db.TableDefs("ENTER THE LINKED TABLE NAME HERE")
 filePath = DLookup("ENTER YOUR LOOKUP TABLE FIELD NAME HERE", "ENTER YOUR LOOKUP TABLE NAME HERE") & "\ENTER YOUR EXCEL SPREADSHEET NAME HERE.XLSX"
     tbl.Connect = "Excel 12.0 Xml;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=" & filePath
     tbl.RefreshLink
 On Error GoTo 0

希望其他人发现这和我一样有用!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    相关资源
    最近更新 更多