我很抱歉,如果这看起来像是一个双重帖子,但我似乎无法为我的项目找到解决方案。我在Access中创建一个简单的数据库。我有一个表单,允许用户根据他们命名的文件构建名称。他们使用组合框来进行选择。我们有一个命名协议,我试图更容易利用。 Image of my Form
我想创建一个子窗体来过滤我用VBA导入的现有文件名。我在子表单中需要的是可能存在的文件的名称和路径,以便用户可以在网络上找到它。我从下面的人那里得到了代码来收集文件名。代码很长,所以我没有添加它,但我可以,如果需要,但它工作得很好!
h1ttp://allenbrowne.com/ser-59alt.html
使用此代码,我现在可以在表中使用现有的文件名 Image of the table 到目前为止跟着我? 我认为这将是最困难的部分,但不是机会。现在我正在尝试将名称拆分为列,以便我可以通过组合框中的选择进行筛选。
Example name
12-CW-Base-Blind Corner-UH.rfa
column 1 = 12
column 2 = CW
Column 3 = Base
Column 4 = Blind Corner
Column 5 = UH
像这样的东西。 用户在Master Format Combobox中选择12。 子表格现在只显示以12开头的文件名。 用户在下一个Combobox中选择CW 子表格现在只显示开头有12-CW的文件名。 等。
根据我的研究,有几种方法可以做到这一点。
我需要建议去哪个方向以及如何到达那里。如果有帮助,我可以分享我已经探索过的方法。他们中的大多数人都使用1和2.如果你已经读过这篇文章,那就谢谢你的时间了。
答案 0 :(得分:1)
您可以创建一个小辅助函数:
Public Function FileNamePart(ByVal FileName As String, NameItem Integer) As String
' Strip extension, then pick part.
FileNamePart = Split(Split(FileName, ".")(0), "-")(NameItem - 1)
End Function
然后创建一个查询:
Select
*,
FileNamePart([FName], 1) As Part1,
FileNamePart([FName], 2) As Part2,
FileNamePart([FName], 3) As Part3,
FileNamePart([FName], 4) As Part4,
FileNamePart([FName], 5) As Part5
From
Files
然后你可以对此进行过滤。
答案 1 :(得分:0)
除非文件名的每个部分都有固定长度以及相同数量的部件,否则超过3个部件会非常困难
将搜索结果保存到另一个表格过度
查询中的动态过滤器参数:LIKE "*'" Forms!formname!tbxParameter "'*"
会查找包含在文本框中输入值的所有记录,我认为渐进式过滤可以在VBA中编码,但我从未这样做过