使用vba MS Access以增量编号保存文件

时间:2013-12-14 03:07:13

标签: ms-access

我正在开发一个数据库程序,部分程序是用户附加文件的能力。然后将这些文件复制到指定的文件夹并重命名以反映表的ID。但是,我的问题是我可以实现这一点但是当用户为同一个ID附加第二个文件时,它会抛出文件已经存在的错误。

所以任何人都可以让我在正确的方向上如何实现这一点,即如果文件退出,那么很快就会将第二个文件保存为增量数字。

一些代码有助于了解我想要实现的目标:

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

上面的工作很好,但是当文件存在并且它通过循环时它会通过堆栈溢出错误并停止代码。

1 个答案:

答案 0 :(得分:0)

使用第一个表的ID键作为第二个表'FKeyID'(一对多表)的外键关系。在第二个表中创建一个'AttachID'并设置您的VBA以根据attachID重命名该文件,允许每个第一个表ID多个附加。

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