Letztes Dokument einer Abfrage via Aktionsknopf öffnen
- Deathstar
- Erledigt
-
-
du sollst einen String statt eines Arrays übergeben, wie sie es dir seit mehreren Postings versuchen nahezubringen:
Set docdate = New NotesDateTime(CStr(doc.Datumgruppengespräch(0)))
Grüsse
Dau-in
-
-
Verzeiht bitte mein mehrmaliges nachfragen, hatte die Hilfe gar nicht auf dem Schirm
Vielen lieben Dank für die Hilfe.
Werde jetzt erstmal damit arbeiten können und hoffe, wenn ich wieder ein Problem habe, eure Hilfe nochmal in Anspruch nehmen zu können.
-
Habe mal weiter experimentiert, code lautet nun:
Code
Alles anzeigenSub Click(Source As Button) Dim ws As New NotesUIWorkSpace Dim ses As New NotesSession Dim db As NotesDatabase Dim view As NotesView Dim doc As NotesDocument Dim docdate As NotesDateTime Dim actdate As NotesDateTime Dim altdoc As NotesDocument Dim entryA As NotesViewEntry Dim entryB As NotesViewEntry Dim nav As NotesViewNavigator Dim collection As NotesDocumentCollection Set db = ses.CurrentDatabase Set view = db.GetView("ProtokollTechnik") Set doc = view.GetFirstDocument Set docdate = New NotesDateTime(doc.Datumgruppengespräch(0)) Set actdate = New NotesDateTime(Now) If Not doc Is Nothing Then If actdate.DateOnly = docdate.DateOnly Then Set nav = view.CreateViewNav Set entryA = nav.GetFirstDocument Set entryB = nav.GetPrevDocument(entryA) Set altdoc = db.GetDocumentByID(entryB.UniversalID) Call ws.EditDocument(False, altdoc) Else 'Call ws.EditDocument(False, doc) ' im Lesemodus öffnen End If Else Msgbox("Kein vorheriges Protokoll gefunden.") End If End Sub
Als Fehlermeldung (wenn die ersten beiden bedingungen zutreffen) erhalte ich: Object Variable not set.
Der Fehler müsste in der Zeile: Call ws.EditDocument(False, altdoc) liegen, aber wie lautet der code richtig, da ich meiner ansicht nach ein objekt übergebe?! -
Set entryA = nav.GetFirstDocument
Set entryB = nav.GetPrevDocument(entryA)
Set altdoc = db.GetDocumentByID(entryB.UniversalID)auch auf die Gefahr hin wieder einen weissen Schimmel zu bauen (da es auch Rappschimmel und Rotschimmel geben kann, ist ein weisser Schuimmel manchmal gar nicht so verkehrt)
du nimmst das erste Dokument und dann in der nächsten Reihe für entryB das Dokument davor.
Kommt denn da überhaupt ein Dokument vor dem ersten?
Was sagt der Debugger in der Zeile nach 'set altdoc', wird da denn ein Object angezeigt?grüsse
Dau-in
-
Ok, zugegeben: ich habs nicht so mit Pferden, daher hoffe ich mir wird mein Lapsus nachgesehen
Deathstar: du wurdest bereits gebeten, eine vernünftige Fehlerbehandlung einzubauen. Das Auskommentieren von "On Error Resume Next" fällt nicht darunter. Denn mit einer vernünftigen Fehlerbehandlung würdest du sehen, dass -aller Wahrscheinlichkeit nach (hab grad keine Lust, das nachzuvollziehen)- entryB bereits "Nothing" ist. Wie man allerdings auf die Idee kommt, das Dokument vor dem ersten sich greifen zu wollen, das musst du mir mal in 3 einfachen Sätzen erläutern...
Zu einer vernünftigen Fehlerbehandlung gehört der Fehler, der Fehlertext, die Zeile und das Modul. Schau dir doch bitte mal "Err", "Erl" und "GetThreadInfo" an. -
also zuzerst mal den Debugger einschalten, dann die Objekte und Variablen anschauen, die in der Zeile mit dem Fehler verwendet werden. Haben die Objekte/Variablen die richtigen Werte?
Die Zeilen prüfen, in denen die Objekte/Variablen gesetzt werden.
Aber in dem Fall ist es auf alle Fälle das Dokument, welches vor dem 1. Dokument kommt (siehe Beitrag von DAU-in).
Gruß
Dirk -
Naja ich dachte halt "zuerst soll er mir das Erste Dokument in der Liste suchen und dann das vorherige (bezogen aufs datum)" Daher dieses misslungene Konstrukt.
Alles in Allem habe ich jetzt (mittels ein paar If-Bedingungen) Abfragen gebaut, ob die objekte überhaupt existieren, sodass es nun wie gewünscht funktioniert.
Vielen lieben Dank für eure Hilfe und gedult, aber eine Frage habe ich noch:
Gibt es irgendwo vernünftige Tutorials, wie man schritt für schritt sich einarbeiten kann. Wie gesagt, ist neuland für mich.
-
Herdt-Verlag
grüsse
Dau-in
-
Zitat
Deathstar schrieb:
Naja ich dachte halt "zuerst soll er mir das Erste Dokument in der Liste suchen und dann das vorherige (bezogen aufs datum)" Daher dieses misslungene Konstrukt.
Tut mir leid, aber das kann ich immer noch nicht nachvollziehen. Wenn du einen Stapel Papier hast und das erste Blatt Papier herunternimmst, würdest du da auch auf die Idee kommen, das vorherige zu wollen? Nein, weil du weißt, es gibt kein Blatt vor dem Ersten. Also, warum wohl würde es mit einer View funktionieren sollen?Zitat
Gibt es irgendwo vernünftige Tutorials, wie man schritt für schritt sich einarbeiten kann. Wie gesagt, ist neuland für mich.
Designer-Hilfe? Die Beispiele sind hinreichend erklärt, mit ein wenig Transferdenken kann man davon auf das gerade aktuelle Problem schließen.Wenn du unbedingt Geld ausgeben magst, versuchs z.B. damit.