Office: (Office 2003) Komplizierter Excel Import

Helfe beim Thema Komplizierter Excel Import in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Leute, ich habe gerade ein Problem mit einem Import von Excel Daten: Ich habe 2 Tabellenblätter in einer Excel Datei. Beide Tabellenblätter... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von ElBirn, 15. Oktober 2007.

  1. Komplizierter Excel Import


    Hallo Leute,

    ich habe gerade ein Problem mit einem Import von Excel Daten:

    Ich habe 2 Tabellenblätter in einer Excel Datei. Beide Tabellenblätter enthalten Wertpapierkurse, wobei in jedem Tabellenblatt 256 Kurse sind.

    In den Zeilen steht jeder Handelstag vom 01.01.1997 bis heute... also jede Menge Zeilen. In der Spalte steht um welches Wertpapier es sich handelt, wobei die zweite Zeile auch zur Wertpapierkennung gehört.

    Anbei der Screenshot.

    Nun möchte ich diese Daten importieren, aber.... und das ist das Problem...

    Ich brauch die Daten in einer Tabelle mit den Feldern

    - Handelstag
    - Unternehmensname
    - Unternehmenscode
    - Kurs

    bzw. soll eine Zeile so aussehen
    05.11.2002 | Freenet |DE0005792006(RI) | 18,55

    Insgesamt muss die Tabelle bei 512 Unternehmen und für jedes Unternehmen 2786 Kurse:
    512 x 2786 = 1.426.432 Datensätze enthalten.

    Wie bekomme ich das am besten hin? Mir fällt nur eins ein: Jedes Unternehmen einzeln importieren, d.h. 512 x mal einen Import machen... Vorher müsste ich das Excel Sheet auf das gewünscht Layout noch per Copy & Paste anpassen, so dass das Layout wie oben beschrieben aussieht. -- siehe Screenshot 2

    .... und wie lange das dauert.... !!!!

    Hab ihr eine Idee???

    Gruß

    Lucas

    :)
     
  2. Hallo,

    kannst du eine Verknüpfung zu den Tabellenblättern herstellen? Dann könntest du die Daten in einer Schleife mit per VBA generierten Abfragen auslesen.
     
    Anne Berg, 17. Oktober 2007
    #2
  3. Hallo Anne!

    :-) Bin froh, dass du dich dem Problem angenommen hast... Hast mir ja schon ein paarmal gut geholfen!

    Also wenn ich die Wertpapiere auf 3 Tabellen blätter aufteile dann geht der Import als auch die Verknüpfung. Aber das Format passt natürlich nicht.

    Ich habe jetzt drei Verknüpfungen in der DB, also zu jedem Excel Tabellenblatt eine - siehe Screenshot.

    Die Unternehmen sind aber als Feld in der DB hinterlegt und nicht im Format wie ich es brauche!

    ... und jetzt? Hast du eine Idee?

    Gruß

    Lucas
     
  4. Komplizierter Excel Import

    Nun, an die Feldbezeichnungen käme man notfalls noch heran. Aber wie sieht es mit dem Inhalt aus? Das Bild ist zu klein für mich, aber mir scheint, die Daten fehlen. Und was ist mit dem Firmen-Code?

    Ich bräuchte mal ein kleines Test-Beispiel... *wink.gif*
     
    Anne Berg, 17. Oktober 2007
    #4
  5. Hallo,

    ich empfehle die Daten in 2 Tabellen zu speichern

    Tabelle "UNTERNEHMEN"
    Spalten "Code" (Primärschlüssel) und "Name"

    Tabelle "Kurse"
    Spalten "Code" (Fremdschlüssel zu Tabelle Unternehmen, Spalte Code)
    und "Handelstag" - beide Spalten zusammen bilden den Primärschlüssel
    und "Kurs"

    Zum Einlesen der Daten:

    Variante 1:

    1. ODBC-Treiber zur Exceldatei anlegen
    2. Die ganze Exceldatei in ein Recordset einlesen und mit GETROWS in ein 2-dimensionales Array speichern
    3. Aus Array Zeilen 1 und 2 die Tabelle "Unternehmen" füllen.
    4. Die Folgezeilen würde ich dann Spaltenweise verarbeiten und über eine Schleife in die Tabelle "Kurs" einfügen.

    Variante 2:

    Exceldatei in eine temporäre Tabelle importieren.

    1. die Zeilen mit 'Name' und 'Daten' in der ersten Spalte in einen Recordset selektieren und mit Getrows in ein 2-dimensionales Array schreiben (Name z.B. "strFirmenArr")
    2. Aus Array Zeilen 1 und 2 die Tabelle "Unternehmen" mittels einer Schleife füllen.
    3. dann würde ich ein SQl-Statement dynamisch generieren und die Tabelle dann Spaltenweise abarbeiten
    z.B. so
    "Insert into Kurse (Code, Handelstag, Datum) select strFirmenarr(2,i), Handelstag, -Name der Spalte zum Unternehmen-

    i ist der Index der Spalte im Array und muss dann mit den Namen der Tabellenspalte korrespondieren.

    Den -Name der Spalte zum Unternehmen- (enthält die Kurse) musst du dynamisch zuweisen

    Das nur mal so als Denkanstoß

    Bei Bedarf kannst Du mir mal einige Zeilen der Exceldatei als PN schicken, ich probier dann mal was.

    Gruß Bernd
     
  6. Hallo Anne,

    die 2.te Zeile aus dem Excel Sheet (Firmen Code) habe ich gelöscht. Aus drei Gründen:

    1. zur Not könnte ich das auch später per suchen und ersetzen für jede Firma machen (512 mal)

    2. Kann nur ein Feld als Feldname festlegen

    3.wenn ich die zweite Zeile lasse erkennt die DB das Feld als Text und die Zahlen werden dann nicht korrekt angezeigt.

    Wenn ich die 2.te Zeile aus dem Sheet lösche kommen die Zahlen korrekt in der DB an!

    Na ja, wie auch immer....

    Ich hab gerade mal eine sehr abgespecktes :-) Bsp. gemacht! Alles im Ausgangszustand.

    999999 bedeutet, dass kein Kurs vorhanden ist, bzw. die Emission des WPs erst später war.
     
  7. Die Idee mit den zwei Tabellen ist gut und dürfte einiges an Platz sparen. Ob das mit dem Array funktioniert, da bin ich nicht sicher, wegen der großen Anzahl Felder. GETROWS wäre eine ADO-Funkton? Leider auch nicht meine Baustelle. Wenn, dann dürfte das aber wohl schneller in der Verarbeitung sein als einzelne Inserts. *wink.gif*

    Ob verlinkt oder importiert, auf jeden Fall lassen sich die Tabellen so einlesen, dass sie wie in Excel aussehen und problemlos zu gebrauchen sind. Code:
    Nachtrag: Die 2. Zeile muss also nicht gelöscht werden. Dass die Kurse dann zu Textfeldern werden, lässt sich beim Speichern sicher wieder ändern, falls das überhaupt nötig sein sollte.
     
    Anne Berg, 17. Oktober 2007
    #7
  8. Komplizierter Excel Import

    Hallo,

    ich habe gerade die zwei Tabellen gemacht. Die mit den Unternehmen hab ich hinbekommen, allerdings reichen meine Access Kenntnisse für den Rest nicht aus.

    Könnt ihr mir noch einen Tip geben wie ich jetzt die Tabelle mit den Kursen usw. fülle.... Leider habe ich keine Ahnung von Arrays, Recordsets und Co...

    Danke

    Lucas
     
  9. Dann schick mir doch eine Exceldatei mit ein paar Zeilen, ich vesuche dann mal was (morgen!)
    Gruß Bernd

    Habe das zipfile nicht gesehen!
    Ich setze mich morgen mal ran, muss jetzt erst mal das Spiel D:CZ zuendesehen!
    Bernd
     
  10. Super!

    Das in Beitrag #6 sollte reichen, oder?

    Danke

    Lucas
     
  11. Toll!

    Vielen Dank für deine Hilfe.... Das Spiel geht weiter!!!!
     
  12. Hallo,

    ich habe hier mal einen ersten Ansatz zur Speicherung der Firmen in eine vordefinierte Zieltabelle.
    Die GetRows-Methode gibt es auch bei DAO-Recordsets - ich bin begeistert. *Smilie
    Code:
    Das Auslesen und Übertragen der Kurse und Datumsangaben sollte ähnlich funktionieren, mit dem Zusatz, dass dazu die Autowert-IDs aus tabFirmen geholt werden müssen.


    PS: Was bleibt einem schon anderes übrig, wenn man sich nicht für Fußball interessiert?! *wink.gif*
     
    Anne Berg, 17. Oktober 2007
    #12
  13. Komplizierter Excel Import

    Danke, aber ich kann damit kaum was anfangen!

    Hab zu wenig VBA Kenntnisse...

    Hab das ganze in ein neues Modul kopiert...weiter weiss ich schon nicht...

    Kannst du mir bitte erklären was ich damit genau machen soll?

    Danke

    Lucas

    --- na das Spiel ist ja auch nicht besonders toll... zumindest für D!
     
  14. Hallo,

    im Anhang ist eine Beispiel-DB mit einer Mini-Excel-Tabelle.

    Schau dir das Modul an, dort wird der Import und der Datentransfer ausgeführt.

    Du musst das dann nur noch auf deine drei Excel-Tabellen erweitern...
     
    Anne Berg, 17. Oktober 2007
    #14
  15. hm...

    also als Test funktioniert das, aber mit den richtigen Daten kommt schon beim Import ein Fehler: "Nicht analysierbarer Datensatz".

    Ab F58 wird der Firmenname nicht importiert und ab F112 kommt kein Firmenname und kein FCode. Der Rest der Daten wird aber richtig importiert.

    Woran kann das liegen?

    Nachtrag:
    Ich hab gerade die ersten 58 Spalten im ExcelSheet gelöscht, so dass der Import genau dort startet wo er vorher einen Fehler gebracht hat.

    Ein ähnliches Fehlermuster tritt wieder auf: Die ersten 57 DS werden richtig importiert, danach fehlt bis zum 114 DS der Firmenname, danach fehlt wieder FName und FCode!

    Was ist da los? Liegt das an Access?
     
Thema:

Komplizierter Excel Import

Die Seite wird geladen...
  1. Komplizierter Excel Import - Similar Threads - Komplizierter Excel Import

  2. Erbitte komplizierte Formel Wenn,dann oder wenn dies, dann

    in Microsoft Excel Hilfe
    Erbitte komplizierte Formel Wenn,dann oder wenn dies, dann: Hallo liebe Wissende, folgende 3 Probleme schaffe ich, als Laie, auch mit Hilfe des Internets nicht zu lösen. Mir wird monatlich eine csv-Datei mit folgenden Daten zur Verfügung gestellt. Ich...
  3. Berechung monatl. Kosten

    in Microsoft Excel Hilfe
    Berechung monatl. Kosten: Hallo zusammen, ich habe mal eine Excel erstellt, die versucht mein Problem etwas näher zu beschreiben. Gegeben ist eine Tabelle, welche Daten enthält, sowie ein Projekt, welches an dem Tag...
  4. Hilfe bei Formel-Vereinfachung/-Kürzung

    in Microsoft Excel Hilfe
    Hilfe bei Formel-Vereinfachung/-Kürzung: Hallo zusammen, ich stehe gerade auf dem Schlauch bei der Vereinfachung/Kürzung einer Formel. Mein aktuelles Ziel ist es in Excel die Umsätze bei der Einstellung neuer Vertriebsmitarbeiter zu...
  5. Prüfen und Verketten von Zellen mit Formeln als Inhalt

    in Microsoft Excel Hilfe
    Prüfen und Verketten von Zellen mit Formeln als Inhalt: Sehr geehrte Damen und Herren, ich möchte in einer Excel Tabelle ca. 72 Zellen miteinander verketten und prüfen, ob diese gefüllt sind, falls manche dieser Zellen leer sind sollen diese aus der...
  6. Komplizierter Blattschutz

    in Microsoft Excel Hilfe
    Komplizierter Blattschutz: Hi, ich brauchte Unterstützung bei der Umsetzung eines Schreibschutzes/Blattschutzes. Dieser Schutz soll folgendermaßen aussehen: 1. Insgesamt habe ich 10 Tabellenblätter die geschützt werden...
  7. Tastenkombination für die Texthervorhebunsfarbe möglich? + 2. komplizierte Frage

    in Microsoft Word Hilfe
    Tastenkombination für die Texthervorhebunsfarbe möglich? + 2. komplizierte Frage: Hallo! Schon vorab vielen lieben Dank, falls jemand eine Idee hat für mich. Ich habe zwei Fragen, ob gewisse Funktionen in Microsoft Word 2010 möglich sind: 1. Ich nutze in beim Verfassen...
  8. komplizierte (für mich :D) formel zur berechnung in excel

    in Microsoft Excel Hilfe
    komplizierte (für mich :D) formel zur berechnung in excel: Hallo Leute! Habe eine Tabelle mit Daten (5x16 Felder), in einer anderen Tabelle habe ich Dropdown-Listen zur Auswahl, je nachdem was ich auswähle möchte ich dass er mir gernau einen Wert aus der...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden