'=========================< #region: Import >=========================
Private Function fxImportieren() As Boolean
'----< Funktion : Datei importieren >----
addStep "< Import : Start >"
'return=0
fxImportieren = False
'< Kontrolle >
If IsNull(ctlListe_Import.Column(0)) Then
MsgBox "es ist keine Importdatei markiert", vbCritical, "Kontrolle Datei"
Exit Function
End If
'</ Kontrolle >
'< init >
Dim dtReport As Date
Dim sDatei_Pfad As String, sDateiname As String
Dim sJahr As String, sMonat As String
Dim sAbbruch As String
Dim sOrganisation As String
dtReport = ctldtReport
sJahr = Year(ctldtReport) '4stellen
sMonat = Format(Month(dtReport), "00")
sDateiname = ctlListe_Import.Column(0)
sDatei_Pfad = tbxPfad_Ordner & sDateiname
sAbbruch = vbCrLf & "Der Vorgang wird abgebrochen."
sOrganisation = ctlOrganisation
'</ init >
'< Kontrolle Dateiname >
addLog "prüfe Dateikennungen.."
If optNamenskontrolle = -1 Then
Dim sFilelong As String
sFilelong = sDatei_Pfad & "\" & sDateiname
'< Jahr >
Dim intPosJahr As Integer
intPosJahr = InStr(1, sFilelong, sJahr, vbTextCompare)
If Not intPosJahr > 0 Then
MsgBox "Der Import-Dateiname " & sDateiname & " enthält nicht die Jahreskennung " & sJahr & sAbbruch, vbCritical, "Abbruch Import: Kontrolle Dateikennung"
Exit Function
End If
'</ Jahr >
'< Monat >
'*rechts vom Jahr
If Not InStr(intPosJahr + 4, sFilelong, sMonat, vbTextCompare) > 0 Then
'*Links vom Jahr
If Not InStrRev(sFilelong, sMonat, intPosJahr, vbTextCompare) > 0 Then
MsgBox "Der Import-Dateiname " & sDateiname & " enthält nicht die Monatskennung " & sMonat & sAbbruch, vbCritical, "Abbruch Import: Kontrolle Dateikennung"
Exit Function
End If
End If
'</ Monat >
End If
'</ Kontrolle Dateiname >
addStep "import: dtReport=" & dtReport
addStep "import: Datei=" & sDateiname
'< Kopf ermitteln >
addLog "ermittle Berichtskopf"
Dim rMaster As Recordset
Set rMaster = CurrentDb.OpenRecordset("SELECT TOP 1 * FROM tbl_RF_Master WHERE IDReport = " & °IDMaster)
If rMaster.EOF Then
addStep "neu"
rMaster.AddNew
Else
addStep "überschreiben"
rMaster.Edit
End If
rMaster!dtReport = dtReport
rMaster!dtImport = Now
rMaster!Organisation = sOrganisation
rMaster!Filename = sDateiname
rMaster!FileLong = sDatei_Pfad
rMaster.Update
rMaster.MoveLast
°IDMaster = rMaster!IDReport
rMaster.Close
addStep "IDReport=" & °IDMaster
'< Kopf ermitteln >
'< reset >
addLog "reset Importpuffer"
CurrentDb.Execute "DELETE * FROM _Import_" & °Area & "_Daten"
'=qryImport_Act_00a_temp_reset
'</ reset >
'< Import Details>
addLog "Importiere Excel-Datei in Puffer : start"
On Error Resume Next
DoCmd.TransferSpreadsheet acImport, , "_Import_" & °Area & "_Daten", sDatei_Pfad, True
If Err.Number <> 0 Then
MsgBox Err.Description & sAbbruch, vbCritical, "Fehler beim Import von Excel"
Exit Function
End If
addLog "Import in Puffer: ok"
'</ Import Details >
'< Anzeigen >
ctlListe_vorhanden.Requery
addStep "</ Import >"
fxImportieren = True
'</ Anzeigen >
'----</ Funktion : Datei importieren >----
End Function
'=========================</ #region: Import >=========================
|