Public Funktion ImportData2800 ()
Const IMPORT_FOLDER als Schnur = „C:\Shared\Reports\Data\“
Schwaches dbsCurrent als DAO.Database
Schwaches fldField als DAO.Field
Schwaches intFile als ganze Zahl
Schwaches lngField als lang
Schwache strFields () als Schnur
Schwaches strFile als Schnur
Schwaches strLine als Schnur
Schwaches strTable als Schnur
Schwaches strDevice als Schnur
Schwache strValues () als Schnur
Schwaches rstImportData als DAO.Recordset
Schwaches tdfTableDef als DAO.TableDef
'Prozessakten
Gesetztes dbsCurrent = CurrentDb
strFile = Dir (IMPORT_FOLDER u. „\ *.txt“)
Bis strFile = tun ""
'Geöffnete Akte
intFile = FreeFile
Geöffnetes IMPORT_FOLDER u. strFile für Eingangs-Zugang lasen geteilt, wie #intFile
'Die Vorlagentabelle hier nennen
strTable = „TBL_DATA“ 'ändern mich zu, was auch immer Sie wünschen
'Die Vorrichtung nennen
strDevice = verließ (strFile, Len (strFile) - 4)
'Spaltenüberschriften lesen
Wenn nicht EOF (intFile) dann
Linie eingegebenes #intFile, strLine
strFields = aufspalteten (strLine, vbTab)
Beenden wenn
'Dieses sollte alle doppelten Zeilenabstände loswerden.
Für J = 0 zu UBound (strFields)
strFields (j) = ersetzen (strFields (j), „„,“ ")
Zunächst
'Die Spalte für die Vorrichtung in unsere Liste der Spalten hinzufügen
ReDim Konserve strFields (0 zu UBound (strFields) + 1) als Schnur
strFields (UBound (strFields)) = „Vorrichtung“
'Tabelle herstellen, wenn notwendig
tdfTableDef einstellen = nichts
Auf Störungs-Zusammenfassung zunächst 'fehlende Tabelle ignorieren
Das tdfTableDef = dbsCurrent.TableDefs (strTable) einstellen
Auf Störung Goto- 0
Wenn tdfTableDef nichts dann ist
Das tdfTableDef = dbsCurrent.CreateTableDef (strTable) einstellen
Beenden wenn
'Felder verursachen, wenn notwendig
Für lngField = 0 zu UBound (strFields)
fldField einstellen = nichts
Auf Störungs-Zusammenfassung zunächst 'fehlende Felder ignorieren
fldField = tdfTableDef.Fields (strFields (lngField) einstellen)
Auf Störung Goto- 0
Wenn fldField nichts dann ist
fldField = tdfTableDef.CreateField (strFields (lngField), dbText) einstellen 'verursachen immer Textfelder
tdfTableDef.Fields.Append fldField
Beenden wenn
Zunächst
'Datumsstempel-Datumfeld verursachen, wenn notwendig
fldField einstellen = nichts
Auf Störungs-Zusammenfassung zunächst 'Vermisstfeld ignorieren
fldField = tdfTableDef.Fields („DateStamp“) einstellen
Auf Störung Goto- 0
Wenn fldField nichts dann 'kein DateStamp Feld ist
fldField = tdfTableDef.CreateField („DateStamp“, dbDate) einstellen
fldField.DefaultValue = „Datum ()“
tdfTableDef.Fields.Append fldField
Beenden wenn
Auf Störungs-Zusammenfassung zunächst 'vorhandene Tabelle ignorieren
dbsCurrent.TableDefs.Append tdfTableDef
Auf Störung Goto- 0
'Akte lesen
Das rstImportData = CurrentDb.OpenRecordset (strTable) einstellen
Bis EOF tun (intFile)
Den #intFile Eingang, strLine zeichnen
strValues = aufspalteten (strLine, vbTab)
ReDim Konserve strValues (0 zu UBound (strValues) + 1) als Schnur
strValues (UBound (strValues)) = strDevice
'Importdaten
rstImportData.AddNew
Für lngField = 0 zu UBound (strValues)
rstImportData (strFields (lngField)) = strValues (lngField)
Zunächst
rstImportData.Update
Schleife
rstImportData.Close
'Nahe Akte
Nahes #intFile
strFile = Dir
Schleife
Enden-Funktion
|