我希望使用VBA来更新外部输入文件的链接。我是一名开发人员,我使用的链接输入文件的路径将不同于最终用户将其放置在生产文件夹中所需的路径。
是否可以使用VBA更新链接文件位置?我已经有了允许用户指定输入文件位置的代码,该信息保存在Defaults表的InputFolder中。有没有办法用InputFolder字段信息来更新链接表?
存储的项目数据如下所示: C:\Users\CXB028\OneDrive \ InputFolder \HR\Input data
新文件夹信息将定义一个我无权访问但用户可以访问的网络驱动器位置路径。
下面是我用来定义和存储输入文件夹位置的代码:
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电子表格)。
发布于 2019-01-11 20:43:35
我发现一些非常简单和简短的代码非常好用!请看下面的内容。
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
希望其他人能像我一样觉得这篇文章很有用!
https://stackoverflow.com/questions/54047557
复制相似问题