Autor Thema: Set view = uiview.View (object variable not set)  (Gelesen 5335 mal)

Offline booltrue

  • Frischling
  • *
  • Beiträge: 42
Set view = uiview.View (object variable not set)
« am: 14.02.19 - 14:40:36 »

Wenn ich den folgenden Code im Queryopen Event oder Queryclose Event aufrufe, bekomme ich immer
die Fehlermeldung "object variable not set", d.h. uiview ist null.
Die Fehlermeldung kommt immer, wenn zwischen Views gewechselt wird.

Im Postopen Event kommt die Fehlermeldung nur ab und zu, dann aber beim Starten der DB.

In einem dieser Events benötige ich aber den Code.
Wo kann uiview noch initialisiert werden, oder woran liegt es?


Dim view As NotesView
Dim uiview As NotesUIView
Set uiview = uiworkspace.CurrentView
Set view = uiview.View


Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Set view = uiview.View (object variable not set)
« Antwort #1 am: 14.02.19 - 15:36:29 »
Wenn du beim öffnen einer Datenbak schon die CurrentView willst, dann ist die ja sicher bekannt, welche Notes öffnen wird.
Hol sie doch lieber gleich direkt.

Code
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Set db = session.CurrentDatabase
Set view = db.GetView( "Authors" )


P.S. Ist es Absicht, dass in deinem Codeschnippsel das Dim uiworkspace As New NotesUIWorkspace fehlt?

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline booltrue

  • Frischling
  • *
  • Beiträge: 42
Re: Set view = uiview.View (object variable not set)
« Antwort #2 am: 15.02.19 - 11:04:15 »

Ja, da hast du ganz recht.
Ich mach' das immer ziemlich generisch, ist aber nicht immer angebracht bei Notes  :)
Die View ist ja schon bekannt, habe das nun auch so umgesetzt.

Dim uiworkspace As New NotesUIWorkspace hat es wohl nicht mitkopiert  :-:
das sollte da aber schon stehen.

Der Code steht im Queryopen event.
Am Schluß rufe ich Call uiworkspace.ViewRebuild auf.
Bekomme hier aber immer beim Öffnen(und nur beim Öffnen) der Datenbank folgenden Fehler:
"Der angegebene Befehl ist vom Arbeitsbereich aus nicht verfügbar"

Woran liegt das?


Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Set view = uiview.View (object variable not set)
« Antwort #3 am: 15.02.19 - 12:08:21 »
Das ist vermutlich zu früh, ist ja QueryOpen, also vor dem Öffnen. Prüfe mal, ob Du das Rebuild überhaupt brauchst, ansonsten ins PostOpen verlagern

EDIT: ist vermutlich Quatsch. Im welches QueryOpen handelt es sich? Das der Ansicht oder des Dokuments?
« Letzte Änderung: 15.02.19 - 12:12:27 von Peter Klett »

Offline booltrue

  • Frischling
  • *
  • Beiträge: 42
Re: Set view = uiview.View (object variable not set)
« Antwort #4 am: 15.02.19 - 13:12:22 »

Es handelt sich um das QueryOpen Event der Ansicht und ja, es scheint dafür zu früh zu sein.
Ich habe den Code nun ins QueryClose Event verschoben, sollte aber auch im Postopen Event laufen, ja

Was ich mache:
Ich habe im View 3 Buttons zum Filtern der Ansicht,
dort wird folgender Code ausgeführt, der die Ansichtsauswahl-Formel ändert:
NewViewFormula = |SELECT Form = "form" & Spalte1 = "x" & Spalte2 ="y"|
view.SelectionFormula = NewViewFormula
Call uiworkspace.ViewRebuild

Der gleiche Code wird im QueryClose Event aufgerufen, um die Ansichtsauswahl-Formel wieder in den Ursprungszustand zu ändern.
Wenn ich dort kein .ViewRebuild mache, dann bleibt der Filter beim Wechsel der Ansicht und beim Neustart der Datenbank erhalten.


« Letzte Änderung: 15.02.19 - 13:13:54 von booltrue »

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Set view = uiview.View (object variable not set)
« Antwort #5 am: 15.02.19 - 14:49:20 »
Moin

Ist das eine Private Ansicht ? oder hat da jeder Benutzer Designer Rechte ?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline booltrue

  • Frischling
  • *
  • Beiträge: 42
Re: Set view = uiview.View (object variable not set)
« Antwort #6 am: 18.02.19 - 09:48:52 »

Wie ist das gemeint:
Code
oder hat da jeder Benutzer Designer Rechte ?

Die Ansicht ist als Ansichtstyp "Gemeinsam" angelegt.





 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz