【问题标题】:Search and Match Partial Folder Name in Access VBA在 Access VBA 中搜索和匹配部分文件夹名称
【发布时间】:2020-08-27 20:28:43
【问题描述】:

在输入此问题的标题时,我查看了排名靠前的结果,但我遇到了死胡同...

我有一个客户列表,每个客户都有一个工作编号 [Job_Ref__]。与此同时,每位客户都会在 SharePoint 中为他们的所有文档创建一个文件夹。命名约定是作业编号 - 姓氏,名字。我希望能够单击访问表单上的按钮以打开客户的特定文件夹,但它却一直在我的本地磁盘上打开“我的文档”。

我在没有客户文件夹详细信息的情况下尝试了以下代码,它可以毫无问题地打开 SharePoint“驱动器”的根...

当我单击表单上的“打开文件夹”按钮时,以下是有效的:

Private Sub Command232_Click()
Dim folderName As String
Dim folderfullPath As String

folderName = Me.FilePath
folderfullPath = "C:\Users\" & Environ("Username") & "\SharePoint Site\Customers 2020\"
Call Shell("explorer.exe " & folderfullPath, vbNormalFocus)
End Sub

当我使用文件夹名称时,我遇到了问题;我尝试过使用通配符文件夹名称,但无济于事:

Private Sub Command232_Click()
Dim folderName As String
Dim folderfullPath As String

folderName = Me.FilePath
folderfullPath = "C:\Users\" & Environ("Username") & "\SharePoint Site\Customers 2020\"
Call Shell("explorer.exe " & folderfullPath & folderName & "*", vbNormalFocus)
End Sub

任何帮助都将不胜感激,因为我遇到了很大的砖墙。
注意:我尝试定义 folderName = Job_Ref__,但我认为这太模糊了,所以我在构建客户文件夹名称 Job_Ref__ - 姓氏,名字的访问表单中添加了一个带有宏的 FilePath 字段
这些都没有奏效——我是不是做的太多了?呵呵

【问题讨论】:

  • 问题可能是文件夹名称中的逗号和空格, 。当我用下划线替换时,代码有效。
  • 所以现在我们遇到了问题:姓氏,名字是字段CallerName,这是“L,F”格式的客户姓名。 Me.FilePath 只是将 Job_Ref__CallerName 放在一起的 Access。我该如何补救?我真的不想看到我的客户是乔,_唐。我理解你的答案错了吗?在这一点上,我觉得自己像个白痴。 ????‍♂️
  • 名称部分应位于单独的字段中,例如 FName、MName、LName。然后使用串联来构建所需的任何组合。

标签: vba windows ms-access


【解决方案1】:

Windows 允许在文件名中使用逗号,但 Shell() 函数不喜欢。选项:

  1. 不要在文件名中使用逗号,并在 VBA 中使用 Replace() 函数来消除字段值中的逗号以匹配文件名

  2. 使用 FollowHyperlink 打开文件夹 - 它接受逗号
    FollowHyperlink(folderfullPath & folderName)

【讨论】:

  • FollowHyperlink 是最好的选择,而且工作完美。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2020-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-28
  • 2018-11-25
  • 2015-09-11
相关资源
最近更新 更多