从 Access VBA 自动增量创建的文件夹名称
Posted
技术标签:
【中文标题】从 Access VBA 自动增量创建的文件夹名称【英文标题】:Autoincrement created folder names from Access VBA 【发布时间】:2021-10-25 16:56:09 【问题描述】:我想知道是否有一种方法可以根据表单中的值自动增加文件夹名称。基本上,我需要在前一个文件夹中创建一个空文件夹,并为以后的条目创建一个自动递增的编号。我的脚本可以在正确的位置创建文件夹,但我不确定如何使文件夹的标题以“1”开头,然后为以后的每个条目自动递增。
这就是我现在所拥有的。它不起作用,但我想我可能会做点什么?我知道我必须将 TimeDateTeam.value 设置为静态的,否则每个文件夹都会不同,并且无法增加数量。我可以完全省略它,并将文件夹命名为“Test n”,其中 n 是自动递增的数字。
Dim filepath1 As String
Dim filepath2 As String
Dim i As Integer
filepath1 = Path2 & "\" & Me!TimeDateTeam.Value & "Test " & i
filepath2 = Path2 & "\" & Me!TimeDateTeam.Value & "Test " & i + 1
Dim fso As FileSystemObject
Set fso = New FileSystemObject
If fso.FileExists(filepath1) = True Then
MkDir filepath1
Else: MkDir filepath2
End If
我是 VBA 和一般编程的新手,并且考虑使用 for 循环并在 i > 1 时将“i”添加到末尾,但我不确定完成此操作的语法。任何帮助或建议将不胜感激。我不打算使用 for 循环,所以如果您有其他方法,请提供帮助!
【问题讨论】:
“不起作用”是什么意思 - 错误消息,错误结果,没有任何反应?日期通常用/
字符构成,不能在文件夹或文件名中。格式化要删除的日期值。
如果文件存在,为什么还要尝试创建它?似乎需要交换 MkDir 变量。 Path2 是全局变量吗?您要创建多少个文件夹?这将由用户输入决定吗?这将始终是一组新文件夹还是您需要添加到父文件夹?
【参考方案1】:
试试这个:
Sub Tester()
Const root As String = "C:\Tester\Test\"
Dim i As Integer
Dim fso As FileSystemObject
Set fso = New FileSystemObject
i = 1
Do While fso.FolderExists(root & "Subfolder" & i)
i = i + 1
Loop
fso.CreateFolder (root & "Subfolder" & i)
End Sub
【讨论】:
【参考方案2】:这不需要对 FileSystemObject 的引用。
Option Compare Database
Option Explicit
Sub sbMkDir()
Dim i As Integer
Dim s As String
s = CurrentProject.Path & "\folder"
For i = 1 To 3
MkDir s & i
Next i
End Sub
适用于 Windows 10 和 Microsoft 365
【讨论】:
以上是关于从 Access VBA 自动增量创建的文件夹名称的主要内容,如果未能解决你的问题,请参考以下文章