1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
|
" codeBody "
Public Functie ImportData2800 ()
Const IMPORT_FOLDER als Koord = „C:\Shared\Reports\Data\“
Schemerige dbsCurrent als DAO.Database
Schemerige fldField als DAO.Field
Schemerige intFile als Geheel
Schemerige lngField zoals lang
Schemerige strFields () als Koord
Schemerige strFile als Koord
Schemerige strLine als Koord
Schemerige strTable als Koord
Schemerige strDevice als Koord
Schemerige strValues () als Koord
Schemerige rstImportData als DAO.Recordset
Schemerige tdfTableDef als DAO.TableDef
De 'dossiers van het proces
Vastgestelde dbsCurrent = CurrentDb
strFile = Dir (IMPORT_FOLDER & „\ *.txt“)
Doe tot strFile = ""
'Open dossier
intFile = FreeFile
Open IMPORT_FOLDER & strFile voor Gelezen de Toegang van de Input Gedeeld zoals #intFile
'Naam de hoofdlijst hier
strTable = „TBL_DATA“ 'verandert me in wat u wilt
'Naam het apparaat
strDevice = Weggegaan (strFile, (strFile) Len - 4)
'Lees kolomrubrieken
Als niet (intFile) EOF Dan
De lijn voerde #intFile, strLine in
strFields = verdeel (strLine, vbTab)
Beëindig als
'Dit zou om het even welke dubbele ruimten moeten van de hand doen.
Voor j = 0 aan UBound (strFields)
strFields (j) = vervang (strFields (j), „„,“ „)
Daarna
'Voeg de kolom voor het apparaat in onze lijst van kolommen toe
Het Domein van ReDim strFields (0 aan UBound (strFields) + 1) als Koord
strFields (UBound (strFields)) = „Apparaat“
'Cre�ër lijst, indien nodig
Plaats tdfTableDef = niets
Op Fout hervat 'negeren daarna ontbrekende lijst
Plaats tdfTableDef = (strTable) dbsCurrent.TableDefs
Op Fout GoTo 0
Als tdfTableDef dan niets is
Reeks tdfTableDef = (strTable) dbsCurrent.CreateTableDef
Eind als
'Cre�ër gebieden, indien nodig
Voor lngField = 0 aan UBound (strFields)
Reeks fldField = niets
Op Fout hervat 'negeren daarna ontbrekende gebieden
Plaats fldField = tdfTableDef.Fields (strFields (lngField))
Op Fout GoTo 0
Als fldField dan niets is
De reeks fldField = tdfTableDef.CreateField (strFields (lngField), dbText) 'leidt altijd tekst tot gebieden
tdfTableDef.Fields.Append fldField
Eind als
Daarna
'Cre�ër de datumgebied van de datumzegel, indien nodig
Plaats fldField = niets
Op Fout hervat 'negeren daarna ontbrekend gebied
Plaats fldField = tdfTableDef.Fields („DateStamp“)
Op Fout GoTo 0
Als fldField niets toen 'Geen gebied DateStamp is
Reeks fldField = tdfTableDef.CreateField („DateStamp“, dbDate)
fldField.DefaultValue = „Datum ()“
tdfTableDef.Fields.Append fldField
Eind als
Op Fout hervat 'negeren daarna bestaande lijst
dbsCurrent.TableDefs.Append tdfTableDef
Op Fout GoTo 0
'Lees dossier
Plaats rstImportData = (strTable) CurrentDb.OpenRecordset
Doe tot (intFile) EOF
De lijn voerde #intFile, strLine in
strValues = verdeel (strLine, vbTab)
Het Domein van ReDim strValues (0 aan UBound (strValues) + 1) als Koord
strValues (UBound (strValues)) = strDevice
De 'gegevens van de invoer
rstImportData.AddNew
Voor lngField = 0 aan UBound (strValues)
rstImportData (strFields (lngField)) = strValues (lngField)
Daarna
rstImportData.Update
Lijn
rstImportData.Close
'Dicht dossier
Dichte #intFile
strFile = Dir
Lijn
De Functie van het eind
|