能否通过FileDialogue选取Dropbox文件并将路径存入SharePoint数据库?
可行性说明及实现方案
完全可行,但需要将原来的本地文件路径替换为所有用户都能访问的Dropbox共享路径,不能继续使用本地绝对路径。以下是两种适配场景的实现方案:
方式1:映射Dropbox团队文件夹为网络驱动器(类本地路径体验)
如果你的组织已将Dropbox团队库文件夹映射为统一的网络驱动器(比如Z:\组织共享文件夹),可以直接修改现有代码,让文件选择框默认指向该映射路径:
修改后的VBA代码
Private Sub cbtAttachment_Click() Dim f As Object Dim strFullFilePath As String Set f = Application.FileDialog(3) ' 3代表文件选择对话框类型 f.AllowMultiSelect = False ' 设置默认打开路径为映射的Dropbox团队共享文件夹 f.InitialFileName = "Z:\组织共享文件夹" If f.Show = -1 Then ' 用户确认选择文件 strFullFilePath = f.SelectedItems(1) ' 超链接字段需遵循「显示文本#链接地址#」格式,这里用文件名作为显示文本 Me.txtAttachmentPath = Mid(strFullFilePath, InStrRev(strFullFilePath, "\") + 1) & "#" & strFullFilePath & "#" End If Set f = Nothing End Sub
注意事项
- 所有用户必须将同一个Dropbox团队文件夹映射为相同的驱动器号,否则路径会失效;
- 确保所有用户拥有该Dropbox文件夹的访问权限。
方式2:使用Dropbox共享链接(跨平台通用)
如果用户使用不同系统,或无法映射网络驱动器,推荐使用Dropbox共享链接存入超链接字段。以下提供两种实现方式:
简化版(手动复制共享链接)
无需复杂API,让用户从Dropbox网页端复制共享链接后粘贴存入:
Private Sub cbtAttachment_Click() Dim strShareLink As String Dim strFileName As String strShareLink = InputBox("请粘贴Dropbox文件的共享链接:") strFileName = InputBox("请输入文件显示名称:") If strShareLink <> "" And strFileName <> "" Then ' 按超链接字段格式存入 Me.txtAttachmentPath = strFileName & "#" & strShareLink & "#" End If End Sub
进阶版(自动上传并获取共享链接)
通过Dropbox API实现「本地选文件→自动上传到Dropbox→获取共享链接存入字段」的全流程:
- 先在Dropbox开发者平台创建应用,获取API访问令牌;
- 给Access VBA添加Dropbox SDK引用;
- 使用以下核心代码:
' 需提前添加Dropbox SDK引用 Private Sub cbtAttachment_Click() Dim f As Object Dim strLocalPath As String Dim dbx As New DropboxClient Dim sharedLink As SharedLinkMetadata ' 初始化客户端(替换为你的API访问令牌) dbx.AccessToken = "你的Dropbox API访问令牌" Set f = Application.FileDialog(3) f.AllowMultiSelect = False If f.Show = -1 Then strLocalPath = f.SelectedItems(1) ' 上传文件到Dropbox团队共享文件夹 dbx.Files.UploadAsync "/组织共享文件夹/" & Dir(strLocalPath), strLocalPath ' 生成并获取共享链接 Set sharedLink = dbx.Sharing.CreateSharedLinkWithSettingsAsync("/组织共享文件夹/" & Dir(strLocalPath)).Result ' 存入超链接字段 Me.txtAttachmentPath = Dir(strLocalPath) & "#" & sharedLink.Url & "#" End If Set f = Nothing Set dbx = Nothing End Sub
通用注意事项
- 确保
txtAttachmentPath的Is Hyperlink属性已设为Yes,否则无法直接点击打开链接; - 共享链接需设置为「组织内成员可访问」或「公开可访问」,避免权限问题;
- 映射驱动器方式需同步所有用户的驱动器配置,保证路径一致性。
内容的提问来源于stack exchange,提问作者Robert ZG
相关产品推荐
相关产品推荐

