MS Access:如何用msoFileDialogFolderPicker将链接存入其他表字段
Access中引用跨表字段并保存文件夹超链接的解决方案
核心说明
在Access里,引用其他表的字段分两种场景,取决于表单是否和目标表绑定:
场景1:表单已绑定包含目标字段的记录源
如果你的表单RecordSource已经是包含Characterization results表的查询(比如直接用该表作为记录源),无需额外表名前缀,直接通过Me![字段名]引用即可。
注意你代码里的拼写错误:Charactisation应为Characterization,修正后写法如下:
Me![PL Reports] = "#" & .SelectedItems(1) & "#"
场景2:表单未绑定目标表,需直接操作表
如果表单和Characterization results表无绑定关系,需要用DAO记录集直接写入数据:
Private Sub Load_HyperlinkBTN_Click() Const msoFileDialogFolderPicker As Long = 4 Dim fd As Object Dim db As DAO.Database Dim rs As DAO.Recordset Dim folderPath As String Set fd = Application.FileDialog(msoFileDialogFolderPicker) With fd .Title = "选择附件文件夹" If .Show = -1 Then folderPath = .SelectedItems(1) ' 打开目标表的记录集 Set db = CurrentDb Set rs = db.OpenRecordset("[Characterization results]", dbOpenDynaset) ' 添加新记录并写入超链接 rs.AddNew rs![PL Reports] = "#" & folderPath & "#" rs.Update ' 释放对象 rs.Close Set rs = Nothing Set db = Nothing End If End With Set fd = Nothing End Sub
关键注意事项
- Access超链接字段必须用
#包裹路径,这部分你的代码逻辑是正确的 - 表名或字段名含空格时,必须用方括号
[]包裹(如[Characterization results]、[PL Reports]) - 若需更新现有记录而非新增,将
rs.AddNew替换为记录定位逻辑(比如rs.FindFirst)
内容的提问来源于stack exchange,提问作者David Memram
相关产品推荐
相关产品推荐

