【发布时间】:2015-07-06 15:39:14
【问题描述】:
我一直在尝试找出一种方法,可以在文件夹中的所有文件上运行以下 VBA 代码,而无需手动打开每个文件。
这是我现在的代码(将所需的表导出为分隔的 txt 文件,包括列名):
Private Sub Command4_Click()
Dim MyObj, MySource As Object, File As Variant, stDocName As String, Counter As Integer
On Error GoTo Err_Command4_Click
Dim stDocName As String, Counter As Integer
Counter = 1
stDocName = "tblSCTurCount"
DoCmd.TransferText acExportDelim, "", stDocName, "C:\Users\name\Downloads\cnt\cnt_output.txt", True
Exit_Command4_Click:
Exit Sub
Err_Command4_Click:
MsgBox Err.Description
Resume Exit_Command4_Click
End Sub
在研究问题时,我发现a process 在 excel 中有效,但我不确定如何在访问中更改变量,尤其是工作簿引用。
谢谢!
编辑——有效的代码:
Dim FS As FileSystemObject
Set FS = New FileSystemObject
Dim MyFolder As Folder
Set MyFolder = FS.GetFolder("C:\Users\name\Downloads\cnt\Folder")
Dim MyFile As File
Set appAccess = CreateObject("Access.Application")
For Each MyFile In MyFolder.Files
appAccess.OpenCurrentDatabase (MyFile.Path)
appAccess.Visible = True
NewFileName = MyFile.Path & ".txt"
appAccess.DoCmd.TransferText acExportDelim, "", "tblScTurCount", NewFileName, True
appAccess.CloseCurrentDatabase
Next
【问题讨论】:
-
但是我没有完全理解。您使用的是 Access 还是 Excel?