es funktioniert zu mindest soweit, dass ich den ersten Kunden anhand seiner Kundennummer finde und die Felder befülle. Allerdings ist es eine Endlosschleife. Aussenrum müsste ich eine Do-Schleife machen.
Gibt es so ein ähnliches Befehl wie z.B. view.GetNextDocumentByKey() ????
Du stocherst doch nur wild im Nebel, ohne zu wissen, was Du da eigentlich machst. Was willst Du denn mit einer Schleife über Notes-Dokumente? Kannst Du uns das erklären?
Du musst doch vielmehr ... na, das *musst* Du selber wissen, sonst bringt unsere Unterstützung hier gar nichts. Beschreibe uns, was für eine Schleife Du brauchst, und dann ist unsere Hilfe auch wieder sinnvoll.
meine Schleife soll in der Exceldatei die zweite zeile / 1.Spalte Kundennummer nehmen danach in der Ansicht suchen, dann die Felder befüllen. Danach in die 3. Zeile / 1.Spalte Kundennummer nehmen in der Ansicht nach dem Dokument suchen, Felder befüllen dann in die 4. Zeile usw....
Set vdoc = view.GetNextDocument(vdoc) ist Falsch von mir, weil ich in der Exceldatei die Kundennummer nehme und anhand dieser Nummer dann in der Ansicht suche...
Titel: Re: Excel Import
Beitrag von: Peter Klett am 15.02.11 - 15:25:07
Du musst die Zeilen hochzählen, angefangen hast Du ja schon mit row = 2
Denk noch daran, dass Du auch irgendwann wieder aufhören musst. Woran erkennst Du, dass die Tabelle zuende ist?
Also brauchst Du eine Schleife (ideal hier: Fox .. Next) über Deine Excel-Rows. Das Innenleben (suchen und miodifizieren des Notes-Dokumemnts) bleibt gleich.
A-Bär: Du musst unbedingt den Fall abdecken, dass Du in Excel einen Wert liest, der keine Entsprechung in der Notes-Datenbank hat.
Bernhard
PS: Besonders pfiffig war es jetzt nicht, dass Du Deine bisherigen Postings gelöscht hast.
Sub Initialize Dim session As New NotesSession Dim db As NotesDatabase Dim view As NotesView Dim doc As NotesDocument Dim rtitem As NotesRichTextItem, SendRtitem As NotesRichTextItem Dim itemReaders As NotesItem, itemReaders2 As NotesItem Dim object As NotesEmbeddedObject Dim row As Integer, written As Integer ,iWCount As Integer Dim colsum As Currency, colsum2 As Currency, colval As Currency, colname As Currency Dim Excel As Variant, xlWorkbook As Variant, xlSheet As Variant, vIntLeser(3) As Variant Dim One As String, xlFilename As String Dim cRechname As String, cPathname As String Dim tmpKundennr As String Dim vdoc As NotesDocument Dim i As String Dim filenum As Integer Dim pathName As String Dim cFilename As String Dim PathFileName As String
Excel.Workbooks.Open PathFileName Set xlWorkbook = Excel.ActiveWorkbook 'Set xlSheet = xlWorkbook.Worksheets(1)
' *** Einzelverbindungsnachweis: Liest die relevanten Felder aus Zeile 2, erstellt ein Dokument und verschickt ein Mail mit Doclink Set xlSheet = xlWorkbook.ActiveSheet ' *** Nur ein Sheet - wird hier definiert row = 2
With xlSheet
tmpKundennr = .Cells( row, 1 ).Value Set view = db.GetView ("vwKundennummer") Set vdoc = view.GetDocumentByKey(tmpKundennr)
Und Du hast es doch nicht begriffen ... >:( Was willst Du mit der Schleife über vdoc? Was erwartest Du, wenn Du bei der Gelegenheit Row hochzählst? Wie sollte Deiner Meinung nach denn dadurch mit der nächsten Excel-Row weiter gemacht werden??
Hast Du Dir das ganze schon mal auf Papier aufgemalt?? Spätestens da müsste der Blödsinn auffallen!
ich brauche doch meinen VDOC weil ich anhand der Kundennummer von der Exceldatei in der Ansicht nachdem Kunden suche und dann die Felder befülle..... falls es falsch ist könntet Ihr mir es erklären
Titel: Re: Excel Import
Beitrag von: Peter Klett am 15.02.11 - 15:42:19
Logisch! Wann setzt Du vdoc und wann überprüfst Du, ob es existiert?
Beachte auch, was Bernhard geschrieben hat. Die Schleife über vdoc ist zwar nicht total daneben, aber SEHR ungeschickt. Wenn Du die Schleife auf Deine Art korrekt schreibst, wirst Du den Effekt haben, dass der Import beim ersten nicht gefundenen Kunden aussteigt, obwohl danach noch mehr Kunden erfolgreich aktualisiert werden könnten. Also vergiss die vdoc-Schleife, dreh an der Quelle und nicht am Ziel ...
EDIT: Logisch bezieht sich auf "Object variable not set"
meine Frage ist Bernhard....wie schaffe ich es nachdem vdoc.save mit der neuen Kundennummer in der Ansicht nach dem Kunden zu suchen ohne der Schleife??
Übersetzen musst Du das jetzt selbst. Einziger nichtberücksichtigter Fehlerfall ist, wenn nach der letzten Kundennummer keine freie Zeile mehr übrig ist.