2013-12-14 116 views
-1

我正在開發一個數據庫程序,並且程序的一部分是用戶附加文件的能力。這些文件然後被複制到指定的文件夾並重命名以反映表的ID。但是,我的問題是,我可以實現這一點,但是當用戶爲同一個ID附加第二個文件時,它會拋出文件錯誤已經存在。使用vba保存帶有增量編號的文件MS Access

所以任何人都可以讓我在正確的方向如何實現這一點,即如果文件退出,然後很快保存第二個文件的增量數。

一些代碼,以幫助瞭解什麼我想實現:

Dim objFSO 
Const OVER_WRITE_FILES = True 
Set objFSO = Nothing 
Dim FileLocation As String 
Dim DestLocation As String 
Dim fileName As String 
Dim fileNameI As String 
Dim iTemp As Integer 

Set objFSO = CreateObject("Scripting.FileSystemObject") 

FileLocation = Me.lblTempLocation.Caption 
DestLocation = "C:\Dev\" 
fileName = [TestName].Value 

'If the backup folder doesn't exist, create it. 
If Not objFSO.FolderExists(DestLocation) Then 
objFSO.CreateFolder (DestLocation) 
End If 

'Copy the file as long as the file can be found 

If Not objFSO.FileExists(DestLocation & fileName & ".pdf") Then 
    objFSO.CopyFile FileLocation, DestLocation & fileName & ".pdf", OVER_WRITE_FILES 

    Else 
     objFSO.CopyFile FileLocation, DestLocation & fileNameI & ".pdf", OVER_WRITE_FILES 

     Do While (fileName) <> vbNullString 
      fileNameI = fileName & Format$(iTemp, "_00") 
     iTemp = iTemp + 1 

     Loop 

End If 

上述工作正常第一次,但如果該文件存在,它會通過它得來一個堆棧溢出錯誤的循環,停止代碼。

回答

0

使用第一個表的ID鍵作爲第二個表'FKeyID'(一對多表)的外鍵關係。在第二個表中創建一個'AttachID',並設置您的VBA根據attachID允許對每個第一個表ID添加多個附件來重命名該文件。

AttachID = second tables unique key 
FKeyID = relation with ID from first table. 
+0

感謝您的回覆,我做到了這一點,並取得了最終結果。它確實給出了一個唯一的文件名[例如:如果在不同的場合附加同一個記錄,file_1_01.pdf和file_1_05.pdf]。但是,我希望爲相同的記錄提供類似[file_1_01.pdf,file_1_02.pdf等]的內容。如果那有意義的話。如果它不能實現,那麼我將不得不做,如你所建議的那樣。謝謝你的迴應。 – Monib