- Beiträge: 7
Excel Spalten nach Access transferrieren
- Torsten Böhme
- Autor
- Offline
- Benutzer
ich habe folgendes Problem: eine Excel-Tabelle enthält in der ersten Spalte Zeiteinträge, die nachfolgenden Spalten enthalten die Messwerte verschiedener Messwertgeber. Nun möchte ich die Datenreihen (Spalten) in eine Spalte bzw. ein Feld in Access übertragen. Dabei sollen die Zeiteinträge der 1. Spalte jeweils erneut mit übertragen werden. Wie kann ich dies am besten ausführen. Vielen Dank für Eure Unterstützung.
Torsten
P.S. Verständlicher ausgedrückt geht es darum, große Kreuztabellen aus Excel in einzelne Datensätze aufzulösen.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
wenn ich Sie richtig verstanden habe möchten Sie pro Datensatz der READ Seite mehrere Felder zu einem Feld auf der WRITE Seite zuordnen.
Hierfür müssen Sie den String Append Heater verwenden. Verbinden Sie dafür alle Spalten der READ Seite mit dem Heater. Der Heater fügt die Daten aller Spalten zu einer Zeichenkette zusammen, den Output können Sie dann dem gewünschten Feld auf der WRITE Seite zuordnen. Über einen Doppelklick können Sie z.B. auch noch spezielle Trennzeichen angeben.
Die Daten (Zahlen, Währung, Datum/Zeit, …) werden dabei anhand der Adapterformatierung der WRITE Seite formatiert.
Im Anhang finden Sie dazu ein kleines Beispiel.
Anhang mehrere_spalten_einem_feld_zuordnen.zip wurde nicht gefunden.
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.
- Torsten Böhme
- Autor
- Offline
- Benutzer
- Beiträge: 7
vielen Dank für die Antwort. Es geht nicht direkt um das zusammenführen von Spalten der Eingangsseite. Mein Problem bzw. meine Frage geht eher dahin, wie ich die Eingangsdatei mehrfach durchlaufen kann, um die Daten der verschiedenen Spalten auf der Ausgangsseite in das gleiche Feld auf der Ausgangsseite schreiben zu können. Spalte 1 enthält z.B. 100 Datumswerte, Spalte 2 enthält 100 Zahlenwerte und Spalte 3 enthält ebenfalls 100 Einträge. Diese sollen auf der Ausgangsseite in ein Feld mit Datumseinträgen und 1 Feld mit den Werten geschrieben werden, so dass auf der Ausgangseite in der Datenbank 200 Datensätze mit den Datumseinträgen und den Werten der Spalte 2 und 3 der Eingangsseite abgelegt werden. Der Flowheater müsste somit zuerst die Spalte 1 und 2 durchlaufen und in die Datenbank schreiben und danach nochmals die Eingangstabelle mit den Spalten 1 und 3 durchlaufen, um die dann in die Datenbank zu übertragen.
Gruß
Torsten Böhme
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
ich hab´s leider immer noch nicht verstanden So wie Sie es schreiben hat das für mich nichts mit einer Kreuztabelle zu tun (auch mein erstes Beispiel nicht).
Können Sie mal ein Beispiel der Daten (Eingangsformat und Ausgangformat) posten, es reicht als Text. Ich denke so ist es leichter zu verstehen.
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.
- Torsten Böhme
- Autor
- Offline
- Benutzer
- Beiträge: 7
ich habe die beiden Dateifromate mal als jpg beigefügt und hoffe, dass die Aufgabestellung daraus ersichtlich ist. Die Anzahl der Zeileneinträge und Spalten ist variabel, so dass dies in der Abfrage der Konvertierung Berücksichtigung finden sollte. Auch besteht die Eingangsdatei aus mehreren Tabellen, die nach Möglichkeit automatisch durchlaufen werden sollten und alle in die gleiche Ausgangsdatenbank geschrieben werden sollen. Ist dies über das batchmodul oder den net-adapter möglich? Vielen Dank für Ihre Unterstützung.
Gruß
Torsten Böhme
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
irgendwie ist nur das Excel Eingabeformat angekommen. Hinweis: Es geht leider nur eine Anlage. Wenn Sie mehrere Dateien haben bitte diese vorher in ein ZIP Archiv packen.
Auf Basis der Eingangstabelle stellt sich für mich die Frage anhand welcher Daten die Zeilen zusammengefasst werden sollen? Sollen einfach alle Zeilen des aktuellen Excel Blattes verwendet werden oder sollen die Zeilen anhand des Datums gruppiert werden? = Pro Tag ein Datensatz in der Access Datenbank?
Dann schreiben Sie, dass die Anzahl der Zeilen und Spalten variable ist. Die Zeilen sind kein Problem. Sie schreiben oben, dass Sie die Daten in eine Access Datenbank Importieren möchten. Hierbei sind Sie auf eine feste Feldanzahl (Spalten) angewiesen da sonst das Tabellenschema dynamsisch angepasst werden müsste. Das kann der FlowHeater nicht leisten.
Ich habe jetzt mal auf Basis dieser Daten ein weiteres kleines Beispiel erstellt, dass die Daten anhand des Datums (ohne Zeit) zusammenfasst und auf der WRITE Seite in einem Datensatz ausgibt. Für ein weiteres Beispiel benötige ich mehr Informationen.
- Wie ist die Access Tabelle aufgebaut
- Welche Daten sollen wie zusammengefasst werden, bitte posten Sie noch das Ausgabeformat wo das ersichtlich ist.
Das einlesen mehrerer Excel Arbeitsblätter wäre halbautomatisch über das Batch Modul und Parameter durchführbar.
z.B.
FHBatch.exe /SetParameter SHEET=Tabelle1 Excel-nach-Access-Import.fhd
FHBatch.exe /SetParameter SHEET=Tabelle2 Excel-nach-Access-Import.fhd
Usw.
Im Excel Adapter auf der READ Seite müssen Sie dann für Worksheet bzw. Arbeitsblatt $SHEET$ angeben.
Anhang mehrere_spalten_einem_feld_zuordnen2.zip wurde nicht gefunden.
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.
- Torsten Böhme
- Autor
- Offline
- Benutzer
- Beiträge: 7
danke für die Hinweise. Die helfen mir schon ein wenig weiter. Mit den von Ihnen gewählten Eingabedaten sollte die Ausgabedatei folgenden Aufbau haben:
Datum;Wert
23.12.2012 00:00;1 #Datensatz 1 der Eingangsdatei
23.12.2012 00:00;2 #Datensatz 1 der Eingangsdatei
23.12.2012 00:00;3 #Datensatz 1 der Eingangsdatei
23.12.2012 00:01;11 #Datensatz 2 der Eingangsdatei
23.12.2012 00:01;2 #Datensatz 2 der Eingangsdatei
23.12.2012 00:01;3 #Datensatz 2 der Eingangsdatei
23.12.2012 00:02;111 #Datensatz 3 der Eingangsdatei
23.12.2012 00:02;2 #Datensatz 3 der Eingangsdatei
23.12.2012 00:02;3 #Datensatz 3 der Eingangsdatei
usw.
Es geht also darum Informationen aus einem Datensatz der Eingangsseite in mehrere Datensätze der Ausgangsseite zu schreiben.
Ist das realisierbar?
Gruß
Torsten Böhme
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
jetzt ist der Groschen gefallen, so wird auch eine Kreuztabelle daraus Dazu benötigen Sie den GroupOut Heater . Hiermit können Sie beliebig viele Kopien der Excel Eingangsdatensätze anlegen.
Um zu unterscheiden welches Feld welcher kopierten Zeile auf die WRITE Seite geschrieben wird benötigen Sie noch weitere Heater . Ich habe Ihnen dazu ein weiteres Beispiel angelegt. Hier wird die Unterscheidung über 2 unterschiedliche Wege durchgeführt.
Über Script) Hier benötigen Sie zusätzlichen einen .NET Script Heater sowie einen AutoID Heater mit eingeschalteter GroupOut Funktion. Das Skript entscheidet anhand des Wertes vom AutoID Heater = Aktuelle kopierte Zeile welcher Eingangswert zurückgegeben wird.
Über IF-THEN-ELSE) Hier benötigen Sie ebenfalls einen AutoID Heater . Der Wert muss hier aber pro Feld über einen separaten IF-THEN-ELSE Heater geprüft werden. Dann ist die hier die Schwierigkeit, dass auf der WRITE Seite ein Feld nicht mehrere Eingangsparameter haben kann. Hierfür benötigen Sie dann noch einen String Append Heater , der aller IF-THEN-ELSE Prüfungen zusammenfasst und dann dem eigentlichen Access Tabellenfeld zuordnet.
Anhang mehrere_spalten_einem_feld_zuordnen3.zip wurde nicht gefunden.
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.
- Torsten Böhme
- Autor
- Offline
- Benutzer
- Beiträge: 7
ich habe das Beispiel gleich mal gestestet. Super! Vielen Dank für die freundliche Unterstützung. Sie haben mir sehr geholfen. Da kann das Wochenende kommen.
Gruß
Torsten Böhme
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Torsten Böhme
- Autor
- Offline
- Benutzer
- Beiträge: 7
jetzt habe ich doch noch eine Frage, da ich heute vormittag einfach nicht drauf komme: ich möchte die Werte der ersten Zeile jeweils in einem weiteren Feld der Ausgangsseite ablegen.
Eingang:
Datum/Zeit;Meßfühler1;Meßfühler2;Meßfühler3
12.01.2012 00:00;20,0;32,0;75,8
12.01.2012 00:01;20,5;33,3;78,5
Ausgang:
Datum/Zeit;Meßort;Wert
12.01.2012 00:00;Meßfühler1;20,0
12.01.2012 00:00;Meßfühler2;32,0
12.01.2012 00:00;Meßfühler3;75,8
12.01.2012 00:00;Meßfühler1;20,5
12.01.2012 00:00;Meßfühler2;33,3
12.01.2012 00:00;Meßfühler3;78,5
Die erste Zeile der Eingangstabelle enthält die Beschreibungen der Meßorte, die dann in der Ausgangsseite mit in das Feld Meßort geschrieben werden sollen.
Gruß
Torsten Böhme
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
das geht natürlich auch. Ich habe das Beispiel dazu noch etwas angepasst.
Über den .NET Script Heater) Hier benötigen Sie einen weiteren .NET Script Heater . Im Script müssen Sie ggf. die Ausgaben an Ihre Bedürfnisse anpassen. Wo Sie ändern können ist im Skript kommentiert.
Über den IF-THEN-ELSE Heater) Hier benötigen Sie für jedes Ausgabefeld eine IF-THEN-ELSE Bedingung sowie für den Ausgabewert eine X-Value Heater in dem Sie den gerade benötigen statisch Wert eintragen.
Anhang mehrere_spalten_einem_feld_zuordnen4.zip wurde nicht gefunden.
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.
- Torsten Böhme
- Autor
- Offline
- Benutzer
- Beiträge: 7
vielen Dank für die abermals schnelle Beantwortung meiner Frage. Ich denke, ich werde mich mal etwas mehr mit dem netscripting beschäftigen. Haben Sie hierzu eventuell einen guten Buchtipp für Einsteiger?
Gruß
Torsten Böhme
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
Ich kann leider kein Buch für den Einstieg empfehlen. Wenn Sie mit der Programmierung/Scripting beginnen möchten empfehle ich Ihnen mit Visual Basic (VB.NET) zu starten. Das ist einfacher zu lernen als C#, der .NET Script Heater kann beide Sprachen.
Hier gibt es kostenlose Online Bücher auch zum Thema C# und VB.NET
http://www.galileocomputing.de/openbook
Direkt Link zu Einstieg in VB 2010
http://openbook.galileocomputing.de/einstieg_vb_2010/
Die benötigte Entwicklungsumgebung (mit kleinen Einschränkungen) gibt es dazu kostenlose von Microsoft!
Microsoft Visual Studio Express
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.