Daten aus Excel in DB importieren

  • Hallo! Versteh ich net so richtig!! Hier nochmal der SourceCode


    For Zeile = 8 To 466
    Set doc = New NotesDocument(db)
    doc.Form = "Statistiken"
    doc.Time = xlApp.Cells( Zeile, 1).Value
    doc.Versuche = xlApp.Cells( Zeile, 2).Value
    doc.eigeneAnrufe = xlApp.Cells( Zeile, 3).Value
    doc.nichtEigeneAnrufe = xlApp.Cells( Zeile, 4).Value
    doc.Gespräche = xlApp.Cells( Zeile, 5).Value
    doc.VerloreneAnrufe = xlApp.Cells( Zeile, 6).Value
    doc.Erreichbarkeit = xlApp.Cells( Zeile, 7).Value
    doc.AngenommenInnerhalb20Sek = xlApp.Cells( Zeile, 8).Value
    doc.Erreichbarkeit_20 = xlApp.Cells( Zeile, 9).Value
    doc.ImWF = xlApp.Cells( Zeile, 10).Value
    doc.VerhältnisWAzuGesamt = xlApp.Cells( Zeile, 11).Value
    doc.AnrufeZuAnderenZielen = xlApp.Cells( Zeile, 12).Value
    doc.AnrufeAufBesetzt = xlApp.Cells( Zeile, 13).Value
    doc.DuGesprächszeit = xlApp.Cells( Zeile, 14).Value
    doc.DuWartezeit = xlApp.Cells( Zeile, 15).Value
    doc.ZeitVorAuflegen = xlApp.Cells( Zeile, 16).Value
    doc.VerloreneAnrufe_2 = xlApp.Cells( Zeile, 17).Value

    doc.Save True, True, True
    Next

    • Offizieller Beitrag
    Zitat

    ... Excel Tabelle komplett in einen Datensatz ...


    Du willst alle 458 Zeilen in einen Datensatz?
    Ich glaub da verwechselst Du etwas.


    Im Notes wird in einer Ansicht Jeder Datensatz als eigene Zeile (1-9 Textzeilen) dargestellt.


    Im Excel ist es üblich die Datensätze pro Zeile und die Felder in den Spalten abzubilden (geht natürlich auch transponiert).


    D.h. jede Zeile im Excel muss im Notes eine neue Zeile (Datensatz) in der Ansicht werden. Datensätze im Notes sind in Dokumenten organisiert. Ein Dokument entspricht einem Datensatz.


    Deshalb wird pro neuer Zeile im Excel (For Zeile = 8 to 466) ein neues Dokument (Datensatz) im Notes erzeugt (Set doc = New NotesDocument(db)).


    Oder verstehe ich Deine Aufgabenstellung falsch? Falls Ja hänge mal einen ScreenShot der Excel-Datei an.


    Gruß
    Dirk

  • Du verstehst es richtig. Dann habe ich eine andere Idee!
    In der Excel Tabelle steht in manchen Zeilen nichts drin. Nun habe ich das Problem, dass ich nach dem importieren in Notes einige leere Datensätze habe.
    Besteht die möglichkeit, per Script nach leeren Datensätzen zu suchen und diese zu löschen?

    • Offizieller Beitrag

    Warum nach leeren Datensätzen suchen?


    1. Du könntest den Select der Ansichtsauswahlformel anpassen und Dokumente mit nur leeren Feldern nicht anzeigen.


    2. Viel besser ist es diese Dokument beim Import abzufangen.


    3. Kannst Du auch ein Script schreiben, dass alle Dokumente mit nur leeren Feldern (außer dem Form-Feld) löschen.


    Ist das Kind schon in den Brunnen gefallen?
    Ist es ein einmal Import, dann kannst Du die 3. Version verwenden. Soll der Import mehrfach laufen, dann solltest Du die 2. Version benutzen.


    Gruß
    Dirk

  • Es ist ein einmal Import, der einmal am Tag laufen soll!


    D.h. dann währe ja die 3 Option am sinnvollsten.


    Du meinst dann mit einer if-Anweisung, oder....?
    Wie würde denn der Code dazu aussehen?
    Kann ja eigentlich nur ein 3-Zeiler sein, oder...?

    • Offizieller Beitrag
    Zitat

    Es ist ein einmal Import, der einmal am Tag laufen soll!

    ein einmal Import, der täglich laufen soll, ist ein Import, der mehrmals läuft. :D


    Also Version 2 ist die bessere.


    Gruß
    Dirk

  • Aber immer in neue Datensätze!! Es soll nichts ersetzt werden!
    Spielt das eine Rolle?


    Im Anhang sollte jetzt eigentlich mal ein Screenshot der Tabelle sein (ohne Daten)!
    Die Tabelle wird von einem Server erstellt und ist dynamisch, da manche Uhrzeiten leer sein können! Schaus dir mal an

    • Offizieller Beitrag

    Gibt es eine Zelle, die zwingend ausgefüllt ist, wenn es sich um einen Datensatz handelt?


    Gruß
    Dirk

    • Offizieller Beitrag

    so wie ich es sehe setzt sich Dein Datensatz aus der Beschreibung (z.B. Zelle A8), dem Datum (z.B. Zelle A9) und der Uhrzeit (z.B. Zelle A10 zusammen.


    Besser wäre es die 3 Felder in 3 Spalten zu organisieren.


    Ansonsten musst Du prüfen, ob die Zeitzelle leer ist.


    Gruß
    Dirk

  • Das kann ich nicht ändern, dass ganze kommt von einem Programm das auf einem Server läuft.
    Ich denke am besten ist es die Spalte A zu prüfen.
    Falls inhalte, dann importieren, ansonsten nicht importieren.


    Besteht die Möglichkeit das umzusetzen?

    • Offizieller Beitrag

    Ja.
    DP steht wahrscheinlich für DienstPlan.


    Wenn Left(..., 2) = "DP" ... dann
    Wenn instr(Right(..., 4), ".") = 0 dann Datum
    Wenn instr(..., ".") <> 0 dann Uhrzeit


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hallo.


    Ich versuche genau das gleiche


    also eine Reihe in Excel = 1 neues Dokument



    Einfach einen normalen Event Javaagenten erstellen und bei Doc.FeldName eben den Feldnamen aus Notes eintragen ?


    Wär klasse, wenn ihr mir helfen könntet


    Grüße

  • Entschuldige, ich hab mich etwas unklar ausgerückt.
    Meine Frage war, ob ich einfach einen Agenten mit dem Code erstellen muss, und/oder ob ich bei

    Zitat


    doc.FeldName1 = xlApp.Cells( Zeile, 1).Value


    einfach anstelle von Feldname1 den Feldnamen des Ziel-Feldes eintragen muss


    Gruß

  • Zitat


    doc.FeldName1 = xlApp.Cells( Zeile, 1).Value
    doc.FeldName2 = xlApp.Cells( Zeile, 2).Value
    doc.FeldName3 = xlApp.Cells( Zeile, 3).Value
    doc.FeldName4 = xlApp.Cells( Zeile, 4).Value


    Hallo Taurec
    Mir wird gerade erst bewusst, das bei dem code jeweils eine Excel Zeile ins Feld importiert wird.
    Bei meinem Excel-File sieht es aber ungefähr so aus


    DS | DS = 1 Dokument
    ----------
    DS | DS
    ----------
    DS | DS
    ----------
    DS | DS
    ----------
    DS | DS


    Kann mir jemand sagen, wie dann dementsprechend der Code Aussehen muss ?
    Wäre klasse :-?


    Gruß
    Klafu

  • Das dachte ich jetzt, da es im Code ja nur "Zeile" heißt...
    Erstellt dann der Agent automatisch die Dokumente, bis er das Excel file durch hat, oder muss man ihm sagen, bei welcher Zeile er aufhören muss ?