首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用VBA代码更新外部数据源链接

使用VBA代码更新外部数据源链接
EN

Stack Overflow用户
提问于 2019-01-05 07:35:47
回答 1查看 104关注 0票数 0

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

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

存储的项目数据如下所示: C:\Users\CXB028\OneDrive \ InputFolder \HR\Input data

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

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

代码语言:javascript
运行
复制
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电子表格)。

EN

回答 1

Stack Overflow用户

发布于 2019-01-12 04:43:35

我发现一些非常简单和简短的代码非常好用!请看下面的内容。

代码语言:javascript
运行
复制
 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

希望其他人能像我一样觉得这篇文章很有用!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54047557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档