h.van.bouwel
Gebruiker
- Lid geworden
- 20 jun 2004
- Berichten
- 51
Goede avond
Ik zal eerst beginnen met mijn idee uit te leggen. in een map staan een aantal files die in de database geïmporteerd moeten worden. Nadat dit gebeurd is moeten de files verplaatst worden naar de map "uploaded".
Het importeren loopt allemaal prima, maar mij het verplaatsten van de file krijg ik de foutmelding "Fout 58, het bestand bestaat al". De map waarnaar ik de file wil verplaatsen bevat op dit moment niets.
Hieronder de volledige code:
Sub ImportCCR()
Dim varFile As Variant
Dim strY As String
Dim strM As String
Dim strD As String
Dim strSQLAdd As String
Dim strSQLDel As String
Dim strFileTo As String
Dim strFileFrom As String
Dim fs As FileSystemObject
Dim strRoutinesEffectiveDate as String
With Application.FileSearch
.LookIn = Application.CurrentProject.Path & "\Reports\00. DB Uploads"
.FileName = "Reports - DB Upload - 20*.*"
If .Execute() > 0 Then
For i = 1 To .foundfiles.Count
varFile = .foundfiles(i)
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ttbl_CCR", varFile, True
strY = Left(Right(varFile, 14), 4)
strM = Mid(Right(varFile, 14), 6, 2)
strD = Mid(Right(varFile, 14), 9, 2)
strRoutinesEffectiveDate = strD & "-" & strM & "-" & strY
'MsgBox strRoutinesEffectiveDate
DoCmd.SetWarnings False
strSQLAdd = "INSERT INTO tbl_CCR ( [Upload Date], [Efective Date], [Upload Source] )SELECT ttbl_CCR.*, #" & Date & "# AS [Upload Date], #" & Format(strRoutinesEffectiveDate, "dd-mm-yyyy") & "# AS [Effective Date], 'CCR' AS Source FROM ttbl_CCR"
DoCmd.RunSQL strSQLAdd
strSQLDel = "DELETE ttbl_CCR.* FROM ttbl_CCR"
DoCmd.RunSQL strSQLDel
DoCmd.SetWarnings True
Set fs = CreateObject("Scripting.FileSystemObject")
strFileFrom = varFile
strFileTo = Application.CurrentProject.Path & "\Reports\00. DB Uploads\Uploaded"
fs.MoveFile strFileFrom, strFileTo
Next i
Else
MsgBox "There were no files found."
End If
End With
End Sub
Heeft er iemand een idee waarom deze fout zich voordoet? Ik heb al verschillende verklaringen gzocht hoe ik dit zou moeten doen, maar ik kom er niet uit.
Alvast bedankt voor de info.
groetjes
Ik zal eerst beginnen met mijn idee uit te leggen. in een map staan een aantal files die in de database geïmporteerd moeten worden. Nadat dit gebeurd is moeten de files verplaatst worden naar de map "uploaded".
Het importeren loopt allemaal prima, maar mij het verplaatsten van de file krijg ik de foutmelding "Fout 58, het bestand bestaat al". De map waarnaar ik de file wil verplaatsen bevat op dit moment niets.
Hieronder de volledige code:
Sub ImportCCR()
Dim varFile As Variant
Dim strY As String
Dim strM As String
Dim strD As String
Dim strSQLAdd As String
Dim strSQLDel As String
Dim strFileTo As String
Dim strFileFrom As String
Dim fs As FileSystemObject
Dim strRoutinesEffectiveDate as String
With Application.FileSearch
.LookIn = Application.CurrentProject.Path & "\Reports\00. DB Uploads"
.FileName = "Reports - DB Upload - 20*.*"
If .Execute() > 0 Then
For i = 1 To .foundfiles.Count
varFile = .foundfiles(i)
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ttbl_CCR", varFile, True
strY = Left(Right(varFile, 14), 4)
strM = Mid(Right(varFile, 14), 6, 2)
strD = Mid(Right(varFile, 14), 9, 2)
strRoutinesEffectiveDate = strD & "-" & strM & "-" & strY
'MsgBox strRoutinesEffectiveDate
DoCmd.SetWarnings False
strSQLAdd = "INSERT INTO tbl_CCR ( [Upload Date], [Efective Date], [Upload Source] )SELECT ttbl_CCR.*, #" & Date & "# AS [Upload Date], #" & Format(strRoutinesEffectiveDate, "dd-mm-yyyy") & "# AS [Effective Date], 'CCR' AS Source FROM ttbl_CCR"
DoCmd.RunSQL strSQLAdd
strSQLDel = "DELETE ttbl_CCR.* FROM ttbl_CCR"
DoCmd.RunSQL strSQLDel
DoCmd.SetWarnings True
Set fs = CreateObject("Scripting.FileSystemObject")
strFileFrom = varFile
strFileTo = Application.CurrentProject.Path & "\Reports\00. DB Uploads\Uploaded"
fs.MoveFile strFileFrom, strFileTo
Next i
Else
MsgBox "There were no files found."
End If
End With
End Sub
Heeft er iemand een idee waarom deze fout zich voordoet? Ik heb al verschillende verklaringen gzocht hoe ik dit zou moeten doen, maar ik kom er niet uit.
Alvast bedankt voor de info.
groetjes