Office: (Office 2010) Excel-Datei in Access importieren

Helfe beim Thema Excel-Datei in Access importieren in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich möchte gerne eine Access-Datenbank erstellen, die mir Daten zu Aufträgen auswertet. Die Rohdaten erhalte ich täglich als... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von milo82517, 19. September 2015.

  1. Excel-Datei in Access importieren


    Hallo zusammen,

    ich möchte gerne eine Access-Datenbank erstellen, die mir Daten zu Aufträgen auswertet.

    Die Rohdaten erhalte ich täglich als csv-Datei. Diese Daten bearbeite ich (derzeit) zunächst in Excel, um sie dann nach Access zu importieren.

    Wo ich mal hin will:[LIST
    [*]Automatischer Import der Excel-Datei über eine Button-Funktion
    [*]Die Anpassungen, die ich derzeit noch manuell in Excel mache, sollen von Access über VBA während des Imports durchgeführt werden.

    Folgende Daten passe ich derzeit noch in Excel an:
    • Spaltennamen, damit diese mit den Access-Spalten übereinstimmen
    • Umwandeln von Datumsfeldern (Werte werden als Text in der Form 20150921 übergeben)
    • Ändern von Feldwerten (Text wie Auftragsstatus wird in einen Zahl umgewandelt)

    Den letzten Punkt mache ich, da ich in der Access-Tabelle diverse Felder mit anderen Tabelle verknüpft habe. Aber hier ist schon mein erster Problem. Wenn ich versuche, die Excel-Daten manuell in Access zu importieren, gibt mir Access an, dass die Daten nicht importiert werden können.
    Derzeit habe ich folgende Fragen:
    • Ist es möglich, die Werte aus verknüpften Feldern zu importieren oder kann ich nur Textfelder importieren?
    • Ist es möglich, die original Spaltennamen der Excel-Tabelle beim importieren über VBA den Spaltennamen der Access-Tabelle zuzuordnen, so dass ich dies nicht mehr manuell vor dem import in Excel durchführen muss?

      Vielen Dank schon mal für Hilfe!

      Grüße
      milo

      :)
     
    milo82517, 19. September 2015
    #1
  2. Hallo,

    erstelle eine Importspezi für die csv-Datei und importiere sie eine temporäre Tabelle. Die temporären Daten übergibst du dann in die Zieltabelle und dabei kannst du die benötigten Manipulationen durchführen.
     
    el_gomero, 20. September 2015
    #2
  3. Hallo el_gomero,

    sorry für den späten Dank für Deinen Denkanstoß!

    Ich habe mir ein Import-Skript erstellt, habe aber noch Probleme mit der Importspezifikation für die csv-Datei.

    Ich habe mal Beispieldaten angefügt. So sieht die csv-Datei aus, die ich bekomme und importieren möchte. Dabei bringen mich die "" im Moment zur weißglut! *mad.gif*

    Wenn ich im Textimport-Assistent bei Textbegrenzungszeichen "kein" auswähle, erstellt er mir zwar die Spalten, aber dann habe ich plötzlich doppelte " (Beispiel: " "20150201" "), und zu Beginn des Datensatzen wird noch ein " gesetzt, ebenso wie am Ende des Datensatzes.
    (s. Import1.PNG)

    Wähle ich als Textbegrenzungszeichen " aus, erstellt er mir nicht die Spalten.
    (s. Import2.PNG)

    Entferne ich vorher in Excel die " aus den Datensätzen, sind zwar die doppelten " weg, aber die am Anfang und am Ende des Datensatzes wird nach wie vor " gesetzt.

    Was mache ich falsch?

    Vielen Dank und Grüße
    michael
     
    milo82517, 30. September 2015
    #3
  4. Excel-Datei in Access importieren

    Hallo,

    nachdem ich in Excel die " entfernt habe, kann ich die Datei problemlos importieren. Auf meinem System ist allerdings das Komma das Dezimaltrennzeichen, das musste in der Spezi umgestellt werden.

    Nachtrag: bitte den Ersteller die Datei gleich ohne Anführungszeichen zu generieren ( ich weiss, ist oft schwierig, aber das beste *wink.gif* )
     
    el_gomero, 30. September 2015
    #4
  5. Hallo el_gomero,

    das hatte ich auch schon probiert, aber dann setzt er mir in der csv immer den kompletten Datensatz in ":
    import.PNG

    Grüße
    milo
     
    milo82517, 30. September 2015
    #5
  6. bei mir nicht - hast du denn auch wieder als csv gespeichert? Und wie hast du die Entfernung der " durchgeführt?
     
    el_gomero, 30. September 2015
    #6
  7. ja, ist als csv abgespeichert.

    Entfernt habe ich die über "Suchen und Ersetzen".
    Suchen nach: "
    Ersetzen durch: (leer gelassen)
     
    milo82517, 30. September 2015
    #7
  8. Excel-Datei in Access importieren

    hab ich genauso gemacht - bei mir sind keine Hochkommata mehr enthalten.
     
    el_gomero, 30. September 2015
    #8
  9. komisch, dann muss ich mir was überlegen.
    Aber vielen Dank schon mal.
     
    milo82517, 30. September 2015
    #9
  10. Hallo,

    das Problem mit den Hochkommata habe ich leider noch nicht gelöst. Ich habe mir eine neue csv-Testdatei erstellt, mit der funktioniert es jedenfalls. Vielleicht sind die bisherigen Dateien "defekt".

    Aber jetzt bin ich bei dem nächsten Schritt mit meinem Latein am Ende. Das Importskript funktioniert schon mal soweit, dass ich die csv-Datei in die temporäre Tabelle importiert bekomme und bei jedem neuen Import einer csv-Datei die temporäre Tabelle zunächst gelöscht wird.

    Allerdings habe ich in der csv-Datei Werte, die ich anpassen muss:
    Wert in csv | umwandeln in
    20151001 | 01.10.2015

    Über ein Formular bekomme ich es hin (wenn auch vermutlich zu kompliziert), dass er mir in die Tabelle das Datum wegschreibt:

    Code:
    Aber das ist mir zu aufwändig. Ich hätte es gerne - etweder in der temporären Tabelle, oder wenn ich die Daten über vba aus der temporären in die richtige Tabelle schreibe - automatisiert gemacht.

    Mir gehen leider die Ideen aus und meine VBA-Kenntnisse reichen dafür bei weitem nicht aus.

    Kann mir jemand sagen, wie es in VBA aussehen müsste?

    Vielen Dank schon mal und Grüße
    milo
     
    milo82517, 1. Oktober 2015
    #10
  11. ok, ich glaube ich habe jetzt doch was gefunden, zwar nicht über VBA, sondern über ein berechnetes Feld in der Tabelle, aber es funktioniert jedenfalls. Ich teste damit erst mal weiter.
     
    milo82517, 1. Oktober 2015
    #11
  12. Code:
     
  13. Excel-Datei in Access importieren

    Hi Eberhard,

    vielen Dank für den Tipp. Allerdings bekomme ich das im Moment noch nicht in VBA eingebunden. Da ich etwas Zeitdruck habe, verschiebe ich das auf später, werde mich aber definitiv damit auseinander setzten, weil es charmanter ist, als meine Lösung mit den berechnenden Feldern in der Tabelle. *wink.gif*

    Allerdings hänge ich schon an dem nächsten Problem. Was ich bisher dazu gelesen habe, hat mir nicht viel weiter geholfen, bzw. habe ich nicht wirklich verstanden.

    Ich importiere die tägliche csv zunächst in eine temporäre Tabelle, deren Inhalb ich zuvor lösche. Hier passe ich einige Werte an (z. B. Datumsformat, verknüpfte Felder). Anschließend sollend die Datensätze in die Datentabelle kopiert werden. Soweit funktioniert es auch auch.

    Mein Problem: Die Datensätze können doppelt vorkommen. In der Datentabelle will ich aber immer nur den zuletzt importierten Datensatz haben, also müsste ich vor dem kopieren in die Datentabelle das Duplikat löschen.

    In der finalen Datentabelle gibt es unter anderen das Feld "ID" (AutoWert, Primärschlüssel, ohne Duplikate) und das Feld "OrderNumber" (indiziert, mit Duplikate). Anhand der OrderNumber soll ein evtl. betehender Datensatz gelöscht werden und nur der aktuell importierte Datensatz (der ja die höhere ID hat) betsehen bleiben.

    Mit meinem bisherigen Code dazu wird zwar erkannt, dass es doppelte Datensätz bereits gibt, aber die Datensätze bleiben in der Datentabelle bestehen und ich habe am Ende doch mehrfache Datensätze in der Tabelle enthalten.

    Hier der Code:

    Code:
    Kann mir jemand helfen?

    Vielen Dank schon mal und Grüße
    milo
     
    milo82517, 5. Oktober 2015
    #13
  14. Beim Schleifendrehen wird mir so schnell schwindelig ...

    Ich halte es lieber mit Abfragen. Die sind datenbankgemäßer, übersichtlicher und schneller sowieso. Schau mal, ob Du hier etwas entnehmen kannst:
    Grundlagen - SQL ist leicht (4) - Aktualisierung einer Tabelle
     
  15. Hi Eberhard,

    vielen Dank für den Link zu Deinem Post.

    Da ich in der Zieltabelle keine Daten für immer löschen will, sondern idealerweise nur aktualisieren möchte (wenn sich z. B. der Auftragsstatus ändert), benötige ich - sofern ich es richtig verstehe - Schritt 1 (a, b) nicht.

    Durch die Schritte 2 & 3 habe ich mich durchgearbeitet und an meine Daten angepasst. So wie es bisher aussieht, funktioniert es. Abschließend werde ich es morgen dann mit den echten Daten testen. *wink.gif*

    Könntest Du mir noch einen Tipp wg. dem Datumsformat geben? Ich habe versucht, eine Abfrage zu erstellen, die mir das Datum in korrekten Format in die Quelltabelle schreibt, bevor ich diese in die Zieltabelle kopiere, aber das hat nicht funktioniert. Das Feld, in den das Datum geschrieben werden sollte bleibt leer - aber vielleicht ist es schon zu spät und ich habe den Wald vor lauter Bäumen nicht mehr gesehen.

    Eine generelle Frage habe ich aber noch:
    Wenn ich Dich richtig verstehe, ist es immer besser, Abfragen zu erstellen und diese über den VBA-Code lediglich anzusteuern, anstatt den SQL-Code in den VBA-Code zu integrieren - richtig?

    Vielen Dank nochmal und Grüße
    milo
     
    milo82517, 5. Oktober 2015
    #15
Thema:

Excel-Datei in Access importieren

Die Seite wird geladen...
  1. Excel-Datei in Access importieren - Similar Threads - Excel Datei Access

  2. Wie kann man in einer Excel-Datei nur ein Arbeitsblatt freigeben

    in Microsoft Excel Hilfe
    Wie kann man in einer Excel-Datei nur ein Arbeitsblatt freigeben: Hallo Zusammen, Wie kann man in einer Excel-Datei nur ein Arbeitsblatt freigeben, so dass die dritte Person die folgenden Bedingungen erfüllt: Die dritte Person kann nur die freigegebenen...
  3. Import einer Excel Datei in den Kalender

    in Microsoft Outlook Hilfe
    Import einer Excel Datei in den Kalender: Ich habe einen *.cvs Datei erstellt und möchte diese in den Outlook Kalender importieren. Wenn ich den Import starte, stellt Outlook einen Fehler fest und startet neu. Woran kann das liegen?
  4. 2 Berichte in eine Excel-Datei exportieren

    in Microsoft Access Hilfe
    2 Berichte in eine Excel-Datei exportieren: Hallo, ich möchte gerne 2 Berichte per VBA in je ein Register einer Excel-Datei exportieren, die dabei erstellt werden soll. Mit dem Befehl "DoCmd.OutputTo acOutputReport, "Bericht1", acFormatXLS,...
  5. Excel Datei nur von einer Person löschbar

    in Microsoft Excel Hilfe
    Excel Datei nur von einer Person löschbar: Moin, wir hatten eine Datei wo mehrere Personen etwas eintragen. Jetzt hat sie einer gelöscht und ist nicht mehr auffindbar. Gibt es eine Möglichkeit, das nur eine Bestimmte Person Exceldateien...
  6. 1.Excel soll 100 Excel-Tabellen überprüfen

    in Microsoft Excel Hilfe
    1.Excel soll 100 Excel-Tabellen überprüfen: Hallo zusammen, In unserem Unternehmen erhalten wir die Aufträge in Form einer Excel-Tabelle mit etwa 8 Seiten. Jährlich haben wir durchschnittlich 500 Aufträge. Das Hauptproblem besteht darin,...
  7. Excel Datei langsam

    in Microsoft Excel Hilfe
    Excel Datei langsam: Hallo zusammen, leider ist meine Datei seit einigen Daten sehr langsam geworden. Ich habe in den VBA mal was geändert, was das automatische aktualisieren der Pivot Tabellen angeht. Ich kenne...
  8. access abfrage in eine vorhandene excel datei speichern

    in Microsoft Access Hilfe
    access abfrage in eine vorhandene excel datei speichern: Hallo, Ich bin neu und recht unerfahren in access und vba. Ich habe auch schon die SuFu verwendet und bin mir nicht ganz sicher ob ich das benötigte gefunden habe oder nicht. *tongue.gif* Ich...
  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