0
對於知道這一點的人來說,我認爲應該非常簡單。我有一個Access表,其中列出了特定文件夾中的PDF名稱以及它們通過唯一參考號鏈接的代理。一個Agent有很多PDF。MS Access VBA將PDF文件移動到記錄集中指定的文件夾
我想要做的是讓用戶按下表格上的按鈕,並將PDF文件複製到相應的代理文件夾中。我的代碼有點混亂,我從我們這裏的代碼片段和谷歌代碼中拼湊了一些代碼。
它創建文件夾,但留下一些空的。它也僅移動每個代理的一個PDF。我猜我需要一個循環,但我不知道在哪裏放一個。
Private Sub Command2_Click()
Dim intCurrPos As Integer, intNextPos As Integer, intLength As Integer
Dim strSlash As String, strFolder As String, strRSFolder As String
Dim fs, cf, x
Dim db As DAO.Database
Dim rs As DAO.Recordset
On Error GoTo Err_CreateFolder
Set db = CurrentDb
Set rs = db.OpenRecordset("tbl_PDF_Agent", dbOpenDynaset, dbReadOnly)
On Error Resume Next
Set fs = CreateObject("Scripting.FileSystemObject")
strSlash = "\"
intCurrPos = 4
strFolder = CurrentProject.Path
intLength = Len(strFolder)
If intLength > 3 Then
Do
intNextPos = InStr(intCurrPos, strFolder, strSlash)
intCurrPos = intNextPos + 1
If intNextPos > 0 Then
If fs.FOLDEREXISTS(Left(strFolder, intNextPos - 1)) = False Then
Set cf = fs.CreateFolder(Left(strFolder, intNextPos - 1))
End If
Else
If fs.FOLDEREXISTS(Left(strFolder, intLength)) = False Then
Set cf = fs.CreateFolder(Left(strFolder, intLength))
End If
End If
Loop Until (intNextPos = 0)
End If
While Not rs.EOF
strRSFolder = strFolder & "\" & rs!Agent
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FOLDEREXISTS(strRSFolder) = True Then
'MsgBox "'" & strRSFolder & "' already exists!"
Else
Set cf = fs.CreateFolder(strRSFolder) & "\"
If fs.FOLDEREXISTS(strRSFolder) = True Then
fs.CopyFile CurrentProject.Path & "\" & rs!FullName, _
(strRSFolder) & "\" & rs!FullName
Else
'MsgBox "'" & strRSFolder & "' was not successfully created!"
End If
End If
rs.MoveNext
Wend
MsgBox "Done"
Exit Sub
任何人都可以給的指針會很棒。