- Beiträge: 2
Datenimport einer .txt Datei zu Access
- Peter Müller
- Autor
- Offline
- Benutzer
Weniger
Mehr
3 Jahre 10 Monate her #4119
von Peter Müller
Datenimport einer .txt Datei zu Access wurde erstellt von Peter Müller
Hallo zusammen,
ich würde gerne eine Textdatei in Access importieren.
Meine Textdatei sieht von der Struktur so aus:
000000121214
0000002Artikel
0000003Meschriftung 1
0000003Meschriftung 2
0000003Meschriftung 3
0000003Meschriftung 4
0000003Meschriftung 5
0000003Meschriftung 6
000000710070,50
000000121215
0000002Artikel
0000003Meschriftung 1
0000003Meschriftung 2
000000710070,50
000000121216
0000002Artikel
0000003Meschriftung 1
0000003Meschriftung 2
0000003Meschriftung 3
0000003Meschriftung 4
0000003Meschriftung 5
0000003Meschriftung 6
0000003Meschriftung 7
000000712070,50
.... und zusammen sind es dann 400.000 Einträge.
Nun würde ich diese Einträge gerne in eine Access Datenbank importieren. Das besondere ist aber, dass ich unter dem Code 0000003 mehrere Einträge habe, das dann vermutlich zu mehreren Datensätzen führen wird. Oder?
Meine Frage, kann flowheater mir die Daten in Access übertragen und wie kann ich das in flowheater anlegen?
Viele Grüße Peter
ich würde gerne eine Textdatei in Access importieren.
Meine Textdatei sieht von der Struktur so aus:
000000121214
0000002Artikel
0000003Meschriftung 1
0000003Meschriftung 2
0000003Meschriftung 3
0000003Meschriftung 4
0000003Meschriftung 5
0000003Meschriftung 6
000000710070,50
000000121215
0000002Artikel
0000003Meschriftung 1
0000003Meschriftung 2
000000710070,50
000000121216
0000002Artikel
0000003Meschriftung 1
0000003Meschriftung 2
0000003Meschriftung 3
0000003Meschriftung 4
0000003Meschriftung 5
0000003Meschriftung 6
0000003Meschriftung 7
000000712070,50
.... und zusammen sind es dann 400.000 Einträge.
Nun würde ich diese Einträge gerne in eine Access Datenbank importieren. Das besondere ist aber, dass ich unter dem Code 0000003 mehrere Einträge habe, das dann vermutlich zu mehreren Datensätzen führen wird. Oder?
Meine Frage, kann flowheater mir die Daten in Access übertragen und wie kann ich das in flowheater anlegen?
Viele Grüße Peter
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 10 Monate her - 3 Jahre 10 Monate her #4120
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Datenimport einer .txt Datei zu Access
Hallo Herr Müller,
das ist etwas Tricky aber machbar Das Problem ist, dass in Ihrer Textdatei die Feldnamen nicht per Trennzeichen vom Inhalt separiert sind. Im Anhang habe ich Ihnen mal ein Beispiel inkl. Access Datenbank erstellt. Hier werden die Felder mit dem Code „0000003“ per Trennzeichen „#“ getrennt in einem Feld zusammenfasst. Falls Sie was anderes benötigen einfach nochmal etwas konkreter schreiben was genau benötigt wird.
Vorgehensweise Punkte siehe Screenshot
das ist etwas Tricky aber machbar Das Problem ist, dass in Ihrer Textdatei die Feldnamen nicht per Trennzeichen vom Inhalt separiert sind. Im Anhang habe ich Ihnen mal ein Beispiel inkl. Access Datenbank erstellt. Hier werden die Felder mit dem Code „0000003“ per Trennzeichen „#“ getrennt in einem Feld zusammenfasst. Falls Sie was anderes benötigen einfach nochmal etwas konkreter schreiben was genau benötigt wird.
Vorgehensweise Punkte siehe Screenshot
- Über diese beiden
SubString Heater
werden die Feldnamen vom Feldinhalt separiert.
- Dann wir eine
GroupBy Heater
benötigt, der alle Zeilen die zu einem Datensatz gehören zu einem zusammenfasst. In Ihrem Fall habe ich den Code bzw. Feldnamen „0000001“ verwendet.
- Dann benötigen Sie für jedes Feld, das Sie auf die WRITE Seite übertragen möchten einen
IF-THEN-ELSE Heater
der prüft, welche Code bzw. Feldname gerade verarbeitet wird. Das wird benötigt, damit im Access Datenbankfeld auch wirklich nur der richtige Inhalt geschrieben wird.
- Beim Feldnamen bzw. Code „0000003“ wird zusätzlich noch ein String Append Heater benötigt, der alle vorhandenen Feldinhalte anhand der Gruppierung zusammenfügt, hier wurde das Trennzeichen „#“ verwendet, kann aber beliebig geändert werden.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Letzte Änderung: 3 Jahre 10 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Peter Müller
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 2
3 Jahre 10 Monate her #4121
von Peter Müller
Peter Müller antwortete auf Datenimport einer .txt Datei zu Access
Vielen Dank für die schnelle Antwort!
Nur nochmal zur
Erklärung: Die 7 Ziffern "0000001" beschreiben den ersten
Artikel und die Beschreibung endet vor der nächsten
"0000001".
Dieser "Bereich" ist allerdings
sehr unterschiedlich lang, weil zu Ziffer "0000003" manchmal
10 oder mehr Einträge existiert.
Wenn man die Textfelder
"0000003" in ein Datenfeld mit # trennt, kann man
vermutlich diese Daten nicht sehr gut in gegen andere Daten laufen
lassen oder? Ich möchte nämlich verschiedene csv Tabellen gegen die
"Übernahme Textdatei" laufen lassen.
Außerdem sind die„Codefelder“ nicht einfach fortlaufend, sondern zum Teil fehlen
auch Ziffern, aber der Code ist immer eindeutig, also also
Beschriftung. Der Code 1454545 ist z.B. immer der Einkaufspreis.
Ich dachte die Struktur sollte dann wie folgt aussehen:
0000000(KEY); 0000001(ID Artikel ), 0000002(Artikelname),
0000003 (Beschriftung 1)
0000000(KEY); 0000001(ID Artikel ),
0000002(Artikelname), 0000003 (Beschriftung 2)
0000000(KEY);
0000001(ID Artikel ), 0000002(Artikelname), 0000003 (Beschriftung
3)
0000000(KEY); 0000001(ID Artikel ), 0000002(Artikelname),
0000003 (Beschriftung 4)
0000000(KEY); 0000001(ID Artikel ),
0000002(Artikelname), 0000003 (Beschriftung 5)
0000000(KEY);
0000001(ID Artikel ), 0000002(Artikelname), 0000003 (Beschriftung
6)
Oder macht die Struktur dann keinen Sinn für "einen"
Artikel?
Gerne würde ich die Daten weiter analysieren, bin aber
noch nicht wirklich sicher, wie ich das am besten angehen soll.
Gibt es von Ihnenauch eine Libreoffice Adapter?
VG Peter
Nur nochmal zur
Erklärung: Die 7 Ziffern "0000001" beschreiben den ersten
Artikel und die Beschreibung endet vor der nächsten
"0000001".
Dieser "Bereich" ist allerdings
sehr unterschiedlich lang, weil zu Ziffer "0000003" manchmal
10 oder mehr Einträge existiert.
Wenn man die Textfelder
"0000003" in ein Datenfeld mit # trennt, kann man
vermutlich diese Daten nicht sehr gut in gegen andere Daten laufen
lassen oder? Ich möchte nämlich verschiedene csv Tabellen gegen die
"Übernahme Textdatei" laufen lassen.
Außerdem sind die„Codefelder“ nicht einfach fortlaufend, sondern zum Teil fehlen
auch Ziffern, aber der Code ist immer eindeutig, also also
Beschriftung. Der Code 1454545 ist z.B. immer der Einkaufspreis.
Ich dachte die Struktur sollte dann wie folgt aussehen:
0000000(KEY); 0000001(ID Artikel ), 0000002(Artikelname),
0000003 (Beschriftung 1)
0000000(KEY); 0000001(ID Artikel ),
0000002(Artikelname), 0000003 (Beschriftung 2)
0000000(KEY);
0000001(ID Artikel ), 0000002(Artikelname), 0000003 (Beschriftung
3)
0000000(KEY); 0000001(ID Artikel ), 0000002(Artikelname),
0000003 (Beschriftung 4)
0000000(KEY); 0000001(ID Artikel ),
0000002(Artikelname), 0000003 (Beschriftung 5)
0000000(KEY);
0000001(ID Artikel ), 0000002(Artikelname), 0000003 (Beschriftung
6)
Oder macht die Struktur dann keinen Sinn für "einen"
Artikel?
Gerne würde ich die Daten weiter analysieren, bin aber
noch nicht wirklich sicher, wie ich das am besten angehen soll.
Gibt es von Ihnenauch eine Libreoffice Adapter?
VG Peter
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 10 Monate her - 3 Jahre 10 Monate her #4122
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Datenimport einer .txt Datei zu Access
Hallo Herr Müller,
ich denke das habe ich soweit verstanden. Haben Sie die Definition mal ausgeführt? Das Ergebnis ist folgendes.
Ein Artikel beginnt mit dem Code 0000001 und es ist egal wieviel weitere Felder folgen. Die Beschriftungen werden dynamisch (je nach vorkommen) in das Feld geschrieben. Mit den IF-THEN-ELSE Bedingungen definieren Sie, welche Felder (CODE) sie auf die WRITE Seite übernehmen möchten. Was nicht definiert ist wird überlesen.
Es wäre auch möglich die Felder in separate Felder, der gleichen Tabelle, oder aber in zusätzliche Tabelle als separate Datensätze zu importieren. Wenn Sie Beschreiben wie es aussehen soll kann ich dazu ein Beispiel erstellen.
PS: Es gibt im FlowHeater leider keinen nativen Adapter für LibreOffice. Falls Sie den ODBC Treiber für LibreOffice Base installiert haben können Sie dafür den ODBC Adapter verwenden.
ich denke das habe ich soweit verstanden. Haben Sie die Definition mal ausgeführt? Das Ergebnis ist folgendes.
Ein Artikel beginnt mit dem Code 0000001 und es ist egal wieviel weitere Felder folgen. Die Beschriftungen werden dynamisch (je nach vorkommen) in das Feld geschrieben. Mit den IF-THEN-ELSE Bedingungen definieren Sie, welche Felder (CODE) sie auf die WRITE Seite übernehmen möchten. Was nicht definiert ist wird überlesen.
Es wäre auch möglich die Felder in separate Felder, der gleichen Tabelle, oder aber in zusätzliche Tabelle als separate Datensätze zu importieren. Wenn Sie Beschreiben wie es aussehen soll kann ich dazu ein Beispiel erstellen.
PS: Es gibt im FlowHeater leider keinen nativen Adapter für LibreOffice. Falls Sie den ODBC Treiber für LibreOffice Base installiert haben können Sie dafür den ODBC Adapter verwenden.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Letzte Änderung: 3 Jahre 10 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Peter Müller
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 3
3 Jahre 8 Monate her #4154
von Peter Müller
Peter Müller antwortete auf Datenimport einer .txt Datei zu Access
Hallo Herr Stark, alle zusammen,
ich probiere gerade die Flow-Heater Software aus und bin begeistert, wie gut Sie funktioniert.
Allerdings stolpere ich gerade über die folgenden Problem und stelle die Fragen hier mal ins Forum:
1. Ich habe einen IF - Heater eingebaut, der auch wunderbar funktioniert. Nun möchte ich weitere Datensätze mit der dem gleichen Filter entspricht mit dem Append - Heater hinzufügen, aber nun bekomme ich leider keinen Datensatz mehr angezeigt, sondern nur noch den Hash(#).
Was mache ich denn falsch?
2. Ich habe einen neuen Datensatz erstellt, der keine Einträge hat, kann ich diesen irgendwie einfach löschen oder rausfiltern aus der Write-Liste?
Gibt es diese Möglichkeit, und wenn ja wie?
Viele Grüße Peter
ich probiere gerade die Flow-Heater Software aus und bin begeistert, wie gut Sie funktioniert.
Allerdings stolpere ich gerade über die folgenden Problem und stelle die Fragen hier mal ins Forum:
1. Ich habe einen IF - Heater eingebaut, der auch wunderbar funktioniert. Nun möchte ich weitere Datensätze mit der dem gleichen Filter entspricht mit dem Append - Heater hinzufügen, aber nun bekomme ich leider keinen Datensatz mehr angezeigt, sondern nur noch den Hash(#).
Was mache ich denn falsch?
2. Ich habe einen neuen Datensatz erstellt, der keine Einträge hat, kann ich diesen irgendwie einfach löschen oder rausfiltern aus der Write-Liste?
Gibt es diese Möglichkeit, und wenn ja wie?
Viele Grüße Peter
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 8 Monate her #4155
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Datenimport einer .txt Datei zu Access
Hallo Herr Müller,
zu 1) können Sie bitte Ihre erzeugte Definition inkl. Testdaten hier posten. Ich kann jetzt nur raten was evtl. nicht passt. Eine etwas genauere Beschreibung, was genau durchgeführt werden soll, wäre auch hilfreich
zu 2) Datensätze filtern geht mit dem IF-THEN-ELSE Heater in Kombination mit dem Filter Heater . Hier finden Sie ein ausführliches YouTube Video dazu: Daten filtern – Quick Tutorial
zu 1) können Sie bitte Ihre erzeugte Definition inkl. Testdaten hier posten. Ich kann jetzt nur raten was evtl. nicht passt. Eine etwas genauere Beschreibung, was genau durchgeführt werden soll, wäre auch hilfreich
zu 2) Datensätze filtern geht mit dem IF-THEN-ELSE Heater in Kombination mit dem Filter Heater . Hier finden Sie ein ausführliches YouTube Video dazu: Daten filtern – Quick Tutorial
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Peter Müller
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 3
3 Jahre 8 Monate her #4156
von Peter Müller
Peter Müller antwortete auf Datenimport einer .txt Datei zu Access
Hallo Herr Stark,
danke für die Rückmeldung!
zu 1) Ich habe einen ganz "normalen" IF Heater eingebaut und ich erhalte auch einen Wert. Da die Rohdaten aber mehrere Werte enthält zu dem der IF Heater passt, hätte ich gerne auch die weiteren Werte in die "Write Tabelle" übertragen. Ich habe also eine "Append Heater" zwischen dem IF Heater und der Write Tabelle eingebaut. (siehe Bild)
Leider erhalte ich keine Wert mehr. Ausgabe in der Write Tabelle:
" ;#; "
VG Peter
danke für die Rückmeldung!
zu 1) Ich habe einen ganz "normalen" IF Heater eingebaut und ich erhalte auch einen Wert. Da die Rohdaten aber mehrere Werte enthält zu dem der IF Heater passt, hätte ich gerne auch die weiteren Werte in die "Write Tabelle" übertragen. Ich habe also eine "Append Heater" zwischen dem IF Heater und der Write Tabelle eingebaut. (siehe Bild)
Leider erhalte ich keine Wert mehr. Ausgabe in der Write Tabelle:
" ;#; "
VG Peter
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 8 Monate her #4157
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Datenimport einer .txt Datei zu Access
Hallo Herr Müller,
wenn sich der String Append Heater auf alle Datensätze der Gruppierung auswirken soll müssen Sie das noch im String Append Heater aktivieren, siehe Screenshot.
wenn sich der String Append Heater auf alle Datensätze der Gruppierung auswirken soll müssen Sie das noch im String Append Heater aktivieren, siehe Screenshot.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Peter Müller
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 3
3 Jahre 8 Monate her #4158
von Peter Müller
Peter Müller antwortete auf Datenimport einer .txt Datei zu Access
Hallo Herr Stark,
super, es funktioniert. Vielen Dank!
Gibt es auch einen Heater der Daten zusammenzufassen kann?
Ich habe nun mit Append einzelne Eintrage mit # getrennt in einem Feld zusammengefasst, nun würde ich aber gerne noch aus der Read Datei den jeweils nächsten Datensatz zu dem Eintrag vor dem nächsten # einfügen, ist das auch möglich?
Ich stelle mir das so vor: Bsp.-Muster:
000StandortA
001ArtikelA
002Regal17
001ArtikelB
002Regal1
001ArtikelC
002Regal6
001ArtikelD
002Regal9
001ArtikelE
002Regal18
Mein Datensatz sieht momentan so aus: A; Artikel A # ArtikelB # ArtikelC# ArtikelD # ArtikelE
Ziel: Ich würde gerne noch den Regalplatz mit in der Write-Datei anzeigen lassen.
Mein Datensatz sieht nun so aus: A; Artikel A 17 # ArtikelB 1 # ArtikelC 6 # ArtikelD 9 # ArtikelE 18
super, es funktioniert. Vielen Dank!
Gibt es auch einen Heater der Daten zusammenzufassen kann?
Ich habe nun mit Append einzelne Eintrage mit # getrennt in einem Feld zusammengefasst, nun würde ich aber gerne noch aus der Read Datei den jeweils nächsten Datensatz zu dem Eintrag vor dem nächsten # einfügen, ist das auch möglich?
Ich stelle mir das so vor: Bsp.-Muster:
000StandortA
001ArtikelA
002Regal17
001ArtikelB
002Regal1
001ArtikelC
002Regal6
001ArtikelD
002Regal9
001ArtikelE
002Regal18
Mein Datensatz sieht momentan so aus: A; Artikel A # ArtikelB # ArtikelC# ArtikelD # ArtikelE
Ziel: Ich würde gerne noch den Regalplatz mit in der Write-Datei anzeigen lassen.
Mein Datensatz sieht nun so aus: A; Artikel A 17 # ArtikelB 1 # ArtikelC 6 # ArtikelD 9 # ArtikelE 18
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 8 Monate her #4159
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Datenimport einer .txt Datei zu Access
Hallo Herr Müller,
ich habe jetzt mal dazu ein kleines Beispiel erstellt, siehe Anhang.
Da ich nicht mehr Informationen habe gehe ich davon aus, dass die Gruppierung anhand des Standortes (000) durchgeführt werden soll?
Zusammenfassen mehrerer Zeilen geht mit dem GroupBy Heater sowie dem String Append Heater . Allerdings ist Ihre Anforderung, zwei Zeilen zusammen und dann erst wieder ein Trennzeichen nicht ganz so einfach abzubilden, deshalb habe ich hier zu einem zusätzlichen .NET Script Heater und unten stehenden C# Skript zurückgegriffen.
Das C# Skript entfernt quasi wieder jedes zweites Trennzeichen aus der vorher gruppierten Zeichenfolge.
Hier wird dann -> A#ArtikelA#17#ArtikelB#1#ArtikelC#6#ArtikelD#9#ArtikelE#18
zu -> A#ArtikelA 17#ArtikelB 1#ArtikelC 6#ArtikelD 9#ArtikelE 18
Schauen Sie sich das mal an.
C# Skript um jedes zweite Trennzeichen wieder zu entfernen
ich habe jetzt mal dazu ein kleines Beispiel erstellt, siehe Anhang.
Da ich nicht mehr Informationen habe gehe ich davon aus, dass die Gruppierung anhand des Standortes (000) durchgeführt werden soll?
Zusammenfassen mehrerer Zeilen geht mit dem GroupBy Heater sowie dem String Append Heater . Allerdings ist Ihre Anforderung, zwei Zeilen zusammen und dann erst wieder ein Trennzeichen nicht ganz so einfach abzubilden, deshalb habe ich hier zu einem zusätzlichen .NET Script Heater und unten stehenden C# Skript zurückgegriffen.
Das C# Skript entfernt quasi wieder jedes zweites Trennzeichen aus der vorher gruppierten Zeichenfolge.
Hier wird dann -> A#ArtikelA#17#ArtikelB#1#ArtikelC#6#ArtikelD#9#ArtikelE#18
zu -> A#ArtikelA 17#ArtikelB 1#ArtikelC 6#ArtikelD 9#ArtikelE 18
Schauen Sie sich das mal an.
C# Skript um jedes zweite Trennzeichen wieder zu entfernen
Code:
public object DoWork()
{
if (InValues.Length != 1)
throw new Exception("Es wird ein Eingangsparameter erwartet!");
string line = (string)InValues[0].GetString();
// Trennzeichen
char c = '#';
// Zeichenkette anhand des Trennzeichen aufteilen
string [] parts = line.Split(c);
string ret = String.Empty;
bool bAddDelimiter = true;
foreach(string part in parts)
{
ret += part;
// jedes 2. Trennzeichen entfernen
if (bAddDelimiter)
{
ret += c;
}
else
{
ret += " ";
}
bAddDelimiter = !bAddDelimiter;
}
// Abschließendes Trennzeichen entfernen!
if (ret[ret.Length - 1] == '#')
{
ret = ret.Substring(0, ret.Length - 1);
}
return ret;
}
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.347 Sekunden