我有一個需要轉換為 SQL Server 的 Access 表,但它有一個附件欄位。我正在嘗試將所有附件匯出到指定檔案夾,并將每個附件檔案按主鍵檔案夾分組。
Function ExtractAttachment()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset2
Dim rsA As DAO.Recordset2
Dim fld As DAO.Field
Dim savePath As String
savePath = "\\MyFolder\" 'Folder path to save files
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("tblEmpInfo") 'tblEmpInfo is table name
Set fld = rst("EmpPhoto") 'EmpPhoto is Field name to table with attachment data type.
Do While Not rst.EOF 'Loop through all records of table.
Set rsA = fld.Value
On Error Resume Next 'Omit errors if file already exist
Do While Not rsA.EOF 'Loop through all attachment of single record
rsA.Fields("FileData").SaveToFile savePath & rst.Fields(0) & "\" 'Save file to disk
rsA.MoveNext
Loop
rst.MoveNext
Loop
rst.Close
dbs.Close
Set fld = Nothing
Set rst = Nothing
Set dbs = Nothing
End Function
如果我洗掉& rst.Fields(0) & "\"它會創建所有檔案,但在同一個檔案夾下并且無法區分它們。
如何使用欄位的自動編號(主鍵)按檔案夾匯出附件?
uj5u.com熱心網友回復:
需要確保檔案夾存在,如果不存在,則創建它。
If Dir(savePath & rst.Fields(0)) = "" Then MkDir savePath & rst.Fields(0)
如果要在匯出檔案的名稱中包含記錄 ID,請在目標路徑中指定。仍然可以保存到子檔案夾或全部保存到一個檔案夾中。
rsA.Fields("FileData").SaveToFile savePath & rst.Fields(0) & "\" & rst.Fields(0) & rsA.Fields("FileName")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/505144.html
