ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
857
857
EMPFEHLEN
-
11.02.10 10:12 #1
- Registriert seit
- Feb 2010
- Beiträge
- 11
Hallo zusammen
ich benötige bitte Eure Hilfe!
Ich muss eine .dat-Datei in Access einlesen und die damit gewonnenen Daten in unterschiedliche Tabellen aufteilen.
Hab leider nur Grundwissen was Access betrifft!
Die Daten haben folgende Struktur:
380|10|100|SDA44000100801|20070116|1127|DPAG-EDICC|5007734370|
380|10|200|1|6909103191|50077343700150|20070110||Bis zum 20.01.2007 ohne Abzug|20070102|20070110|EUR|
380|10|210|DPEED GMBH & CO. OHG|NL V EXPRESS DEUTSCHLAND|||RUNGEDAMM||HAMBURG|21035||DE||4073465440|4073465449||DE813312787|DE|37010050|235506|Po stbank|51222 Köln|||
380|10|220|Testkunde||||Bburgallee 50||Trier|54294|Hamburg|DE||040/85560-0|0651-490||DE801182049||||||||
380|10|300|1||512-513|||20070102|100510315|EUROPACK national BIS 31,5 KG|||||||80|ST|0.000|0.000|0.000|B|251.20||C1|19.00|||0.00||251.20||
Ich möchte also zu allererst die komplette Datei (kann bis zu 40000 Zeilen enthalten) in ein Array einlesen, aber schon dort scheitere ich...
Wo liegt in meinem Code der Hund begraben? (Habe grad erst angefangen zu schreiben, also ist es noch nicht so umfangreich. Es geht mir hauptsächlich erst einmal um das Befüllen des Arrays "RDaten")
Code :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
Option Compare Database Function Einlesen() Dim strsql As String Dim Rechnungsnummer As Long Rechnungsnummer = 0 Dim filecontents As String Dim RDaten(33) Dim Zeile, Feld Open "C:\temp\ElektronischeRechnung.Dat" For Input As #1 Do Until EOF(1) Input #1, filecontents 'Debug.Print filecontents RDaten = Split(filecontents, "|") Debug.Print RDaten Select Case RDaten(1) Case 380 Select Case RDaten(3) Case 100 Case 200 If Rechnungsnummer <> RDaten(5) Then Rechnungsnummer = RDaten(5) End If strsql = "Insert into Rechnungen(Rechnungsnummer,Kundennummer,Rechnungsdatum) select " & Rechnungsnummer & ", " & RDaten(6) & ", '" & RDaten(7) & "'" Debug.Print strsql Case 210 Case 220 Case 230 Case 300 Case 301 Case 310 Case 330 Case 340 Case 400 Case 800 Case 890 End Select Case 381 Select Case RDaten(3) Case 100 Case 200 Case 210 Case 220 Case 230 Case 300 Case 301 Case 310 Case 330 Case 340 Case 400 Case 800 Case 890 End Select End Select End If Loop Close #1 End Function
Vielen Dank im Voraus für Eure Hilfe
friedemannhw
-
Was hast du denn für einen Fehlermeldung?
Was egben dir deine zwei debug.prints aus?
Code vb:1 2
Debug.Print filecontents Debug.Print RDaten
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
11.02.10 10:29 #3
- Registriert seit
- Feb 2010
- Beiträge
- 11
An der Stelle
Code :1
RDaten = Split .......
erhalte ich den Fehler:
Fehler beim Kompilieren:
Keine Zuweisung an Datenfeld möglich!
Aufgrund dieses Fehlers erhalte ich gar keine Ausgabe durchCode :1
Debug.Print...
-
RDaten ist falsch definiert. Du musst RDaten als String-Array ohne Dimension angeben
Ich hab das mal schnell ausprobiert
Code vb:1 2 3 4 5
Public Sub testArray() Dim RDaten() As String RDaten = Split("a|b|c", "|") Debug.Print RDaten(1) End Sub
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
11.02.10 10:54 #5
- Registriert seit
- Feb 2010
- Beiträge
- 11
Hallo yaslaw
ich hab meinen Code nun mal auf das Nötigste beschränkt und die Änderung eingepflegt:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Option Compare Database Function Einlesen() Dim strsql As String Dim Rechnungsnummer As Long Rechnungsnummer = 0 Dim filecontents As String Dim RDaten() As String Open "C:\temp\ElektronischeRechnung.Dat" For Input As #1 Do Until EOF(1) Input #1, filecontents 'Debug.Print filecontents RDaten = Split(filecontents, "|") 'Debug.Print RDaten Loop Close #1 End Function
Nun erhalte ich folgenden Fehler:
Fehler beim kompilieren:
Variable oder Prozedur anstelle eines Moduls erwartet.
Leider wirft er mir den Fehler nur beim Ausführen des Codes und nicht beim kompilieren raus.
Ich kann also nicht mit Bestimmtheit sagen, an welcher Stelle der Fehler nun auftritt, aber ich schätze mal,
dass mit RDaten noch etwas im Argen liegt!?
-
Debugen.... Dann weisst du wo der Fehler passiert
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
11.02.10 14:29 #7
- Registriert seit
- Feb 2010
- Beiträge
- 11
OK, das funktioniert soweit erstmal.
Vielen Dank
Nun hab ich aber noch eine Frage:
Wie muss ich den o.g. Code anpassen, damit ich ein vordimensioniertes Array erhalte?
Also z.B. 33 Spalten und beliebig viele Zeilen!
Mitfunktioniert es nichtCode :1
Dim RDaten(33) As String
-
Mit Split kannst du keinen vordefinierten Array füllen.
Die einzige möglichkeit die ich gerade sehe, ist im kopieren...
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Public Sub testArray() Dim tempFields() As String Dim RDaten(3) As String Dim i tempFields = Split("a|b|c", "|") 'IsEmptyArray ist eine Funktion aus meiner ArrayFunctons-Sammlung 'http://wiki.yaslaw.info/wikka/VbaArrayFunctions If IsEmptyArray(tempFields) Then 'Leere Ziele Else For i = 0 To UBound(RDaten) If UBound(tempFields) >= i Then RDaten(i) = tempFields(i) End If Next i End If Debug.Print RDaten(3) End Sub
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
CSV Datei einlesen Access 2003 VBA
Von RzumAP im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 18.03.10, 10:16 -
Informationen von Access datei einlesen
Von oflu im Forum PHPAntworten: 6Letzter Beitrag: 14.09.07, 11:29 -
mehrdimensionalen String Array einlesen, bearbeiten und schreiben!
Von devilofdawn im Forum JavaAntworten: 1Letzter Beitrag: 28.06.07, 07:55 -
array einlesen array schreiben
Von DerWisser im Forum C/C++Antworten: 3Letzter Beitrag: 27.03.07, 17:40 -
Aus Access Listenfeld in VBA Array schreiben
Von Orphelina im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 17.03.05, 13:41





Zitieren

Login





