Autor Thema: Automatisch aus Excel heraus Dokumente in LN-DB erstellen  (Gelesen 7067 mal)

Offline Silki

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Weiblich
Hallo an Alle,

ich bin total neu hier und bin auch nicht sicher, ob ich hier richtig bin.
Ich bin ein ganz "normaler" Notes User (Lotus Notes 7), meine Excel Version ist Excel 2003.

Mein Problem:
Ich habe eine Excel Tabelle in welcher sich 204 "Datensätze" befinden.
Die einzelnen Spalten beinhalten:
DocumentAuthors
From
Subject
Categories
Pfadangabe des Anhangs

Nun möchte ich automatisch aus Excel heraus in einer Lotus Notes Datenbank diese 204 Dokumente erstellen aus den Angaben in der Tabelle.

Es funktioniert auch alles (also die Dokumente werden angelegt) nur die Anhänge werden nicht erstellt.

Mein Code schaut folgendermaßen aus:

Code
Sub Test()
Dim i As Integer
Dim Session As Object
Dim db As Object
Dim doc As Object

Dim AttachME As Object
Dim EmbedObj As Object

'Erstellt Dokumente in Lotus Notes DB aus den Angaben in Tabelle1 inkl. Anhänge
i = 1
    Do While Cells(i, 1).Value <> ""
        'Debug.Print Cells(i, 1)
            Set Session = CreateObject("Notes.Notessession")
            Set db = Session.GetDatabase("ZZ", "ZZ\test\MSystem.nsf") 'Server, Ordner
            Set doc = db.createdocument()
                doc.Form = "Document"                       'Dokumenttyp in Lotus Notes
                doc.DocumentAuthors = Cells(i, 4).Value     'Werte aus Spalte D
                doc.From = Cells(i, 3).Value                'Werte aus Spalte C
                doc.Subject = Cells(i, 1).Value             'Werte aus Spalte A
                doc.Categories = Cells(i, 2).Value          'Werte aus Spalte C
                
                Set rtBody = doc.CreateRichTextItem("body")
                Set AttachME = doc.CreateRichTextItem("attachment")
                Set EmbedObj = AttachME.EmbedObject(1454, "", "C:\Eigene Dateien\data.xls", "") 'Werte aus Spalte E
                'Set EmbedObj = AttachME.EmbedObject(1454, "", Cells(i, 2).Value, "") 'Werte aus Spalte E funktioniert nicht
                
            Call doc.Save(True, True)
        i = i + 1
    Loop
MsgBox "FERTIG"
End Sub

Für die Angaben zum Anhang sollen die Werte aus Spalte E genommen werden (siehe auskommentierter Code), aber das funktioniert leider nicht.

Wenn ich den Pfad manuell angebe, dann funktioniert es.

Könnt ihr mir helfen? Wie muss der Code lauten, damit ich die Pfadangaben aus Spalte E verwenden kann?

Vielen Dank schonmal für eure Hilfe.

Gruß
Silke








Mitch

  • Gast
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #1 am: 10.05.11 - 16:48:00 »
Sicher, dass du die richtige Spalte ansprichst?

Ohne jetzt den Code an sich durchgeschaut zu haben, sehe ich, dass du den Pfad aus "Cells(i, 2).Value" (im auskommentierten Teil) anhängen willst. Du schreibst, dass das die Spalte E wäre. Vier Zeilen darüber schreibst du aber die gleiche Zelle in das Feld "Categories" und sagst da, dass das Spalte C wäre...

Kann es sein, dass es bloß daran liegt? ;)

Gruß,

Mitch

Offline Silki

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Weiblich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #2 am: 10.05.11 - 16:52:27 »
Hallo Mitch,

ja ich meine tatsächlich Spalte E, ich habe nur vergessen die auskommentierte Zeile entsprechend anzupassen (hatte sie vorher schonmal versehentlich rausgelöscht).


Gruß
Silki

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #3 am: 10.05.11 - 16:56:18 »
Und was sagt der Debugger?

Bernhard

Offline Silki

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Weiblich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #4 am: 10.05.11 - 17:01:35 »
Hallo Bernhard,

es kommt eine Fehlermeldung:

Laufzeitfehler '7063':
Anwendungs- oder objektdefinierter Fehler


Wenn ich auf OK klicke passiert nichts, also es wird auch im Code nichts markiert oder so.

Gruß
Silke

Mitch

  • Gast
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #5 am: 10.05.11 - 17:06:16 »
Hmmm.

Du hast "AttachME" als Object deklariert ("gedimmt"). Deklariere das mal als NotesRichtextItem.

Gruß,

Mitch

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #6 am: 10.05.11 - 19:28:10 »
Wenn das mit "C:\Eigene Dateien\data.xls" funktioniert, aber nicht mit Cells(i, 2).Value (unabhängig von der richtigen Spalte), dann würde ich mir mal Cells(i, 2).Value ausgeben lassen (Msgbox o.ä.), vielleicht ist da ja etwas krumm. Vielleicht wird auch zwingend ein String erwartet, und der Value ist ein anderer Datentyp, dann könntest Du mit Cstr (Cells(i, 2).Value) arbeiten (ich gehe mal davon aus, dass das unter VBA auch so heißt, wie in Lotus-Script, ansonsten verwende den entsprechenden Befehl von VBA der einen Wert in einen String umwandelt).

Mitch

  • Gast
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #7 am: 10.05.11 - 19:43:03 »
Ach, sie macht das ja aus Excel heraus. Dann kann man natürlich nichts als NotesRichtextItem deklarieren.

Dann lieber Peters Hinweis folgen. Vielleicht sind auch überzählige Leerzeichen oder Umbrüche am Anfang oder Ende der Zelle, dann würde ein Trim() helfen...

Offline Silki

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Weiblich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #8 am: 11.05.11 - 08:41:08 »
Hallo ihr Beiden :-))

ich werde den Versuch wohl aufgeben müssen.
Ich habe eure Vorschläge ausprobiert.

Debug.Print Cells(i, 5) gibt mir genau die richtigen Werte aus Spalte E aus.
Auch der Versuch den Wert in String umzuwandeln hat nichts geholfen.

Ich verstehe das nicht  :'(
Warum geht das eine und das andere nicht????

Leider habe ich bisher nur in Excel oder Access Programmiert.
Der Zugriff auf LotusNotes ist mein allererster Versuch und ich kenne mich überhaupt nicht aus, welche Tricks (Methoden, Funktionen) es da noch so gibt.


Trotzdem danke für eure Hilfe.

Gruß
Silke

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #9 am: 11.05.11 - 08:50:58 »
Probier' das Ganze doch mal so:

...
Dim strPfad As String
...

strPfad = Cells(i, 2).Value
Set EmbedObj = AttachME.EmbedObject(1454, "", strPfad, "")

Ein anderer Versuch wäre es mal den Wert aus Spalte E in ein ganz normales Textfeld in dem Notes-Dokument zu schreiben um dann zu sehen was da wirklich rüberkommt.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #10 am: 11.05.11 - 09:33:34 »
Mmmh, also cells(i,2) ist m.E. Spalte B, müsste es nicht cells(i,5) sein?

Edit: Hast Du übrigens in Deinem Post um 08:41 richtig verwendet, im Ursprungspost steht aber i,2 ?!?!
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline Silki

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Weiblich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #11 am: 11.05.11 - 09:41:57 »
Hallo,

das mit den Spalten ist schon geklärt.

Ich habe Axels Vorschlag ausprobiert (mit Spalte E) aber es kommt wieder der Laufzeitfehler.

 ???


Gruß
Silke

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #12 am: 11.05.11 - 09:53:33 »
Was ist denn in der Spalte 5, sind das Verlinkungen (URL o.ä.), oder ist das wirklich nur Text? Könnte mir vorstellen, dass Cells (i, 5).Value leer ist.

Ist das ein einmaliger Import, oder soll das ein generelles Verfahren werden?

Was steht in der Spalte 5, wenn Du die Exceltabelle als Textdatei speicherst?

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #13 am: 11.05.11 - 09:58:45 »
Ooops, hatte ich übersehen, dass die Spaltenverwechslung bereits diskutiert wurde - Sorry!

Ergänzend zu Peters Fragen: Sind die Werte in Spalte E mglw. in zusätzlichen Anführungszeichen eingetragen?

Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline Silki

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Weiblich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #14 am: 11.05.11 - 10:05:42 »
Ahhhh - Ich werd verrückt ...
Die Anführungszeichen waren Schuld.

Oh man, da wäre ich wohl nie drauf gekommen.
Jetzt klappt's, wobei die Anhänge unter dem RTF im Dokument hängen???

Also es kommt das leere RTF, darunter eine Trennlinie und dann der Anhang.

Gruß
Silke

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #15 am: 11.05.11 - 10:19:24 »
Gibt es denn in der Maske ein RT-Feld namens "Attachment"? Wenn es nur ein "Body" gibt, solltest Du die Anhänge auch darin erstellen. Oder es gibt halt 2 Felder, oder....
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline Silki

  • Frischling
  • *
  • Beiträge: 7
  • Geschlecht: Weiblich
Re: Automatisch aus Excel heraus Dokumente in LN-DB erstellen
« Antwort #16 am: 11.05.11 - 10:32:50 »
Hallo,

jetzt habe ich es endlich geschafft.

So sieht der Code jetzt aus und es funzt wunderprächtigst  ;)

Code
Sub Test()
Dim i As Integer
Dim Session As Object
Dim db As Object
Dim doc As Object

Dim AttachME As Object
Dim EmbedObj As Object
Dim strPfad As String

'Erstellt Dokumente in Lotus Notes DB aus den Angaben in Tabelle1 inkl. Anhänge
i = 1
    Do While Cells(i, 1).Value <> ""
        'Debug.Print Cells(i, 5)
            Set Session = CreateObject("Notes.Notessession")
            Set db = Session.GetDatabase("ZZ", "ZZ\test\MSystem.nsf") 'Server, Ordner
            Set doc = db.createdocument()
                doc.Form = "Document"                       'Dokumenttyp in Lotus Notes DB
                doc.DocumentAuthors = Cells(i, 4).Value     'Werte aus Spalte D
                doc.From = Cells(i, 3).Value                'Werte aus Spalte C
                doc.Subject = Cells(i, 1).Value             'Werte aus Spalte A
                doc.Categories = Cells(i, 2).Value          'Werte aus Spalte B
                    Set rtBody = doc.CREATERICHTEXTITEM("body")
                    strPfad = Cells(i, 5).Value             'Werte aus Spalte E
                    Call rtBody.EMBEDOBJECT(1454, "", strPfad)
                                
            Call doc.Save(True, True)
        i = i + 1
    Loop
MsgBox "FERTIG"
End Sub

Vielen, vielen Dank für eure Hilfe.

Gruß
Silke

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz