Office: mehrere Hunderte csv automatisch importieren

Helfe beim Thema mehrere Hunderte csv automatisch importieren in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, also ich bin eigentlich mehr die excel spezialistin als access ^^ leider hab ich nun ne aufgabe die mein armes excel etwas... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von xpressme, 2. Mai 2010.

  1. mehrere Hunderte csv automatisch importieren


    Hallo Zusammen,

    also ich bin eigentlich mehr die excel spezialistin als access ^^

    leider hab ich nun ne aufgabe die mein armes excel etwas übersteigt, deshalb wollt ich mal bei den access kennern nachfragen ^^

    also ich hab täglich knapp 100-200 vba listen die automatisch generiert werden (alle den selben aufbau, täglich knapp 20000 Datensätze in EINER Spalte drinnen)
    die folgendermasen gekennzeichnet sind:

    xxx_20090915154001.csv --> 15.09.2009 15:40:01
    xxx_20090915154501.csv --> 15.09.2009 15:45:01
    xxx_20090915155001.csv --> 15.09.2009 15:50:01
    xxx_20090915155501.csv --> 15.09.2009 15:55:01

    also xxx_ und dann JahrMonatTagStundenMinutenSekunden.

    Ich suche nun nen script für Access, das mir die Daten in jeweils eine Tabelle pro Monat einspielt
    oder eben auch eine Tabelle pro Jahr (Pro Tag sind knapp 20.000 Daten vorhanden also wo ihr denkt dass es besse aufgehoben ist).
    Außerdem soll eben beim Einspielen gemerkt werden in einer 2ten Liste welche Dateinamen schon eingespielt wurden sind (das keine Datei 2mal eingespielt werden kann)
    und wenns geht sollte nach der Spalte die ich Importieren lasse, auch noch eine Spalte dabene angelegt werden, die das Datum und die Uhrzeit aus dem Dateinamen enthält (in der Datei steht Datum und Uhrzeit NCIHT MEHR, deshalb ^^)

    Viele Anforderungen und auch noch wahrscheinlich schlecht erklärt ^^

    hoffe mir kann wer helfen mittels script oder hilfen zum erstellen eines solchen scriptes.

    Vielen Dank an alle Im Voraus,

    Grüle Kati

    :)
     
    xpressme, 2. Mai 2010
    #1
  2. Hi Kati,

    willkommen hier im Forum.
    Dein Problem sollte ohne grössere Schwierigkeiten zu lösen sein.
    Kannst Du mal ein Beispiel einer Deiner CSV-Dateien hochladen?

    Ich kann Dir dann ein Beispiel von mir anpassen.

    Servus
    Peter
     
    peterffw, 4. Mai 2010
    #2
  3. Unabhängig vom Importvorgang: Bei 20.000 Datensätzen * 300 Tage je Jahr könnte eine MDB als Backend relativ rasch überfordert sein (dass gleiche Daten in eine Tabelle kommen, setze ich voraus), falls Du das im Plan hast und Du längerfristig arbeiten willst.
     
    ebs17, 4. Mai 2010
    #3
  4. mehrere Hunderte csv automatisch importieren

    Habe den Code eben rauskopiert und gekürzt aber nicht alle variablen gelöscht. Viel Spaß damit.

    Sub Import_Csv()

    Dim sPath As String
    Dim i As Long
    Dim j As Long
    Dim arr() As String
    Dim arrn() As String
    Dim dateiname As Variant
    Dim dateiname2 As Variant
    Dim neuername
    Dim wshshell As Variant
    Dim Dat As Variant

    Set wshshell = CreateObject("Wscript.shell")

    DoCmd.SetWarnings False
    DoCmd.Hourglass True

    sPath = "C:\Pfad\"



    With Application.FileSearch
    .LookIn = sPath
    .filename = "*.*"
    .SearchSubFolders = True
    .Execute
    j = .FoundFiles.Count


    DoCmd.RunSQL "Delete * from tbl_Import"

    ReDim arr(j)
    For i = 1 To j 'i Zähler
    arr(i - 1) = .FoundFiles(i)
    dateiname = .FoundFiles(i)
    DoCmd.TransferText acImport, "ImSpezi_IVTRP", "tbl_import", "" & dateiname

    Next i

    End With

    DoCmd.SetWarnings True
    DoCmd.Hourglass False


    End Sub
     
    Maxus, 4. Mai 2010
    #4
  5. Also Danke erstmal für die Hilfe.

    Leider geht der Code bei mir nicht weil der an folgenden 2 Zeilen meckert

    DoCmd.RunSQL "Delete * from tbl_Import"
    DoCmd.TransferText acImport, "ImSpezi_IVTRP", "tbl_import", "" & dateiname

    bei den 2 zeilen will er net

    also die csv Dateien beinhalten jeweils 3 Spalten mit | getrennt
    falls ihr mir das noch so Importieren könnt, das der gleich auf 3 Spalten teile (| is das trennzeichen) dann wärs natührlich perfekt ^^

    bitte ohne primärschlüssel ^^

    danke
     
    xpressme, 4. Mai 2010
    #5
  6. Hallo Kathi,

    wenn Du die Funktion genauso verwendet hast, dann ist klar dass sie nicht läuft, denn bei Dir gibt es doch sicher keine Tabelle "tbl_Import" oder?
    Du musst das schon Deinen Tabellennamen einsetzen.
    Auch bein Transfertext wirst Du Probleme haben, weil Du sicher keine Importspezifikation "ImSpezi_IVTRP" hast.

    Lade Doch eine Deiner csv-Dateien mit dem Original-Dateiaufbau (müssen ja nicht die Originaldaten) sein hoch, dann kannst Du ein passendes Beispiel haben.

    Servus
    Peter
     
    peterffw, 4. Mai 2010
    #6
  7. hi.

    ja mach dir einfach ne csv

    Überschrift1|Überschrift2|Übeschrift3
    90823508250345|30495834205890325|2309784352345
    jsdfgosdfoho|pjwerwert|piojwewertert
    123429|ökjawds|ökjasa

    usw...

    Danke ^^
     
    xpressme, 4. Mai 2010
    #7
  8. mehrere Hunderte csv automatisch importieren

    wichtig ist mir, das der sich die namen der bereits eingelesenen files merkt,
    die eingelesenen files in nen unterordner verschiebt, und ie Dateinamen wie oben beschrieben halt verwendet für eine Spalte ^^
     
    xpressme, 4. Mai 2010
    #8
  9. So könnte es gehen. Die Tabellen Logtabelle und Zieltabelle müssen in der DB mit den benannten Feldern bestehen (zzgl. ID). Einmalig legst Du eine Importspezifikation an (Import analog Export) und verwendest diese unter ihrem Namen (farbige Markierung).
    Code:
     
    ebs17, 5. Mai 2010
    #9
  10. hallo Eberhard,

    danke erstmal für den code *Smilie

    wäre es zuviel verlangt mir das in nen Access file zu machen und dann zu schicken ^^

    ich schick dir als PM mal meine emailadresse, da ich vba zwar kann aber acces leider so gut wie 0 ^^

    ich modifizier dann nurnoch pfad und geb dann hier bescheid obs läuft, bzw. was noch fehlt ^^

    danke
     
    xpressme, 5. Mai 2010
    #10
  11. Eigentlich im Sinne der Hilfe zur Selbsthilfe ja, denn
    - Tabellen erstellen kannst Du?
    - ein Formular mit einem Startbutton und Ereignisprozedur erstellen kannst Du?
    - die gezeigte Prozedur in das Formular kopieren kannst Du?
    - die Importspezifikation anlegen lt. Beschreibung kannst Du?

    Mehr ist es nicht.
     
    ebs17, 5. Mai 2010
    #11
  12. bekomm nen fehler mit
    Dim db As DAO.Database
    auserdem hab ich 0 peilung was die Importspezifikation sein soll bzw. wozu die dient, bzw wie ich sie anlege, oder wo du sie da in deinem script verwendest
     
    xpressme, 5. Mai 2010
    #12
  13. mehrere Hunderte csv automatisch importieren

    Hi Kathi,

    wenn bei "Dim db as DAO.Database" ein Fehler kommt, dann fehlt Dir bestimmt der Verweis auf die entsprechende Objectbibliothek!

    Ja und das mit der Import-Spezifikation???

    Deshalb habe ich Dich gefragt, ob Du nicht eine Deiner CSV-Dateien hochladen kannst, damit man sieht ob die z.B. in der ersten Zeile die Feldnamen enhalten, wenn ja wie die lauten - man hätte dann gleich eine passende Tabelle zum speichern und natürlich eine entsprechende Importspezifikation einrichten können. Aber wenn das von Deiner Seite her nicht möglich ist, dann wirst Du wohl mit dem sehr guten Beispiel von Eberhard leben müssen, und alles dann entsprechend anpassen.

    Servus
    Peter
     
    peterffw, 5. Mai 2010
    #13
  14. lustig ist nur ich bekomm ja garnix importiert.

    hab eine Tabelle namens Logdatei
    in der Tabelle gibts eine Spalte Dateiname als Text und Timestamp als Datum/Uhr
    und trotzdem sagt der laufzeitfehler bei

    db.Execute "INSERT INTO Logtabelle (Dateiname, Timestamp)" & _
    " SELECT '" & sName & "', Now()", dbFailOnError

    versteh ich net *Smilie


    und hab nun die importspezifikation gemacht und den namen angegeben, trotzdem laufzeitfehler beim code

    db.Execute "INSERT INTO Zieltabelle" & _
    " (Überschrift1, Überschrift2, Überschrift3, Timestamp)" & _
    " SELECT Überschrift1, Überschrift2, Überschrift3, " & _
    CDate(Format(Mid(sName, 5, 14), "&&&&.&&.&& &&:&&:&&")) & _
    " FROM [Text;DSN=NameDerSpezifikation;FMT=Delimited;HDR=yes;" & _
    "IMEX=2;CharacterSet=850;DATABASE=" & sPfad & "\]." & sName, dbFailOnError

    hab auch schon extra CDate(Format(Mid(sName, 5, 14) angepasst bei mir isses 14,14 aber trotzdem import fehler. hab keine ahnung mehr *frown.gif*
     
    xpressme, 5. Mai 2010
    #14
  15. Das glaube ich jetzt aber nicht! Wenn die von dir genannten Dateinamen stimmen, ist die von ebs gepostete Variante richtig!
    Es wird versucht, ab der 5.Stelle des Dateinamens einen Datums-/Zeitwert zu lesen.
    Mit deiner Variante beginnst du an der 14.Stelle des Dateinamens.
    Wie lauten nochmal deine Dateinamen?
    Wenn deine Tabelle "Logdatei" heißt, geht der Code auch nicht; bei ebs heißt sie "Logtabelle"!
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    g202e, 5. Mai 2010
    #15
Thema:

mehrere Hunderte csv automatisch importieren

Die Seite wird geladen...
  1. mehrere Hunderte csv automatisch importieren - Similar Threads - Hunderte csv automatisch

  2. [VBA] CSV einlesen, mit zeilennummer

    in Microsoft Excel Hilfe
    [VBA] CSV einlesen, mit zeilennummer: Hallo zusammen, ich versuche eine CSV einzulesen, das klappt recht gut. Jedoch wrüde ich gerne ein Zeilennummer (ID, Messpunkt) vor meine Daten schreiben lassen. doch wie mache ich das ohne...
  3. CSV in Outlook

    in Microsoft Excel Hilfe
    CSV in Outlook: Wie kann ich die Uhrzeit eines Termins über die CSV-Datei in Outlook importieren?
  4. CSV Verbindung ergänzt neue Spalten nicht

    in Microsoft Excel Hilfe
    CSV Verbindung ergänzt neue Spalten nicht: Hallo zusammen Ich habe eine csv-Datei über "Daten abrufen - Aus Datei - Aus Text/CSV" in mein Excelfile verknüpft. Nun wird diese csv-Datei regelmässig überschrieben, die Werte aktualisiert und...
  5. Planen von Besprechungen mit Hunderten von Teilnehmern

    in Microsoft Outlook Tutorials
    Planen von Besprechungen mit Hunderten von Teilnehmern: Planen von Besprechungen mit Hunderten von Teilnehmern Outlook für Microsoft 365 für Mac Outlook 2016 für Mac Outlook im Web Outlook.com Outlook 2019 für Mac...
  6. Prozentrechnung (im Hundert)

    in Microsoft Excel Hilfe
    Prozentrechnung (im Hundert): hallo zusammen, für ein artikel kalkulation muss ich preise im hundert ermitteln. ich rechne mit 4 % auf einen artikelpreis von 50 EUR der rechenweg auf meinem taschenrechner ist wie folgt. 100...
  7. Zahl um hunderter Stelle verschoben

    in Microsoft Excel Hilfe
    Zahl um hunderter Stelle verschoben: Hallo, mein Excel kommt neuerdings auf ganz interessante Ideen: Gebe ich in eine Zelle z.B. die Zahl "55" ein und ich drücke Enter, so erscheint als Wert "0,55". Um tatsächlich "55" zu...
  8. Word fügt einfach Hunderte von leeren Seiten hinzu!

    in Microsoft Word Hilfe
    Word fügt einfach Hunderte von leeren Seiten hinzu!: liebe Leute, ich habe echt ein Problem. Ich bin im Examensstress und Word fügt an eine wichtige Datei nach aufmachen, manchmal erst nach kurzer ZEit einfach HUnderte von leeren Seiten an,...
  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