Supportnet / Forum / SW-Sonstige
Ereignisse in LotusNotes
Frage
Hallo supportnetties,
kann mir jemand sagen, wie ich einem Ereignis in einer Notes-Datenbank (z.B. Doppelklick auf eine mail in der Dokumentenübersicht) ein bereits existierendes (LotusScript-)Makro (d.h. dessen Ausführung) zuordnen kann ?
Danke für die Hilfe im voraus !
Gruß
Bernd
Antwort 1 von Sunnylein
Hallo,
da gibt es jede Menge 'Ereignisse', die man mit Aktionen (z. B. einem Agenten) belegen kann. Die 'gängigsten' sind wahrscheinlich PostOpen, QueryClose etc.
Anbei eine Liste aus der LN-Hilfe mit Hinweisen, wo das Ereignis stattfindet (z. B. Ansicht oder Feld etc.) und mit welcher Sprache (Formel, Script) man darauf zugreifen kann.
Ich hoffe, die Infos erschlagen dich jetzt nicht ;-).
Gruss, Sunnylein
---
The following table lists the events that can be automated using the formula language (F), LotusScript (LS), JavaScript (JS), and Java (J).
Database
Postopen (LS, F) - After a database is opened
Postdocumentdelete (LS, F) - After a document is deleted (the document is still available)
Queryclose (LS, F) - When a database is being closed
Querydocumentdelete (LS, F) - Before a document is marked for deletion
Querydocumentundelete (LS, F) - Before a document is unmarked for deletion
Querydragdrop (LS, F) - Before a drag and drop operation in a view
Postdragdrop (LS, F) - After a drag and drop operation in a view
Initialize (LS) - When a database is being loaded
Terminate (LS) - When a database is being closed
View
Queryopen (LS, F) - Before a view or folder is opened
Folder
Postopen (LS, F) - After a view or folder is opened
Regiondoubleclick (LS, F) - When a region in a calendar view is double-clicked
Queryopendocument (LS, F) - Before a document is loaded
Queryrecalc (LS, F) - Before a view or folder is refreshed
Queryaddtofolder (LS, F) - Before a document is added to a folder
Querypaste (LS, F) - Before a document is pasted
Postpaste (LS, F) - After a paste operation
Querydragdrop (LS, F) - Before a drag and drop operation in a calendar view
Postdragdrop (LS, F) - After a drag and drop operation in a calendar view
Queryclose (LS, F) - When a view or folder is being closed
Initialize (LS) - When a view or folder is loaded
Terminate (LS) - When a view or folder is being closed
Form
WebQueryOpen (F) -- form only - Before a Web document displays**
Subform
WebQuerySave (F) -- form only - Before a Web document is saved**
Page
HelpRequest (F) - When help is selected
JS Header (JS) - When a document is being loaded
onBlur (JS) - When an object is deselected
onClick (JS) - When an object is selected
onDblClick (JS) - When an object is selected with a double-click
onFocus (JS) - When an editable field is selected
onHelp (JS) - When help is selected
onKeyDown (JS) - When a key is pressed down
onKeyPress (JS) - When a key is pressed
onKeyUp (JS) - When a key is released
onLoad (JS) - After a document is opened
onMouseDown (JS) - When a mouse button is pressed down
onMouseMove (JS) - When the mouse is moved
onMouseOut (JS) - When the mouse is moved out of an object
onMouseOver (JS) - When the mouse is moved over an object
onMouseUp (JS) - When a mouse button is released
onReset (JS) -- form only- When a document is reset
onSubmit (JS) -- form only - Before a document is submitted
onUnload (JS) - Before a document is closed
Queryopen (LS, F) - Before a document is opened
Postopen (LS, F)-After a document is opened
Querymodechange (LS, F) - Before a document is changed to Read or Edit mode
Postmodechange (LS, F) - After a document is changed to Read or Edit mode
Postrecalc (LS, F) - After a document is refreshed (and values are recalculated)
Querysave (LS, F) - Before a document is saved
Postsave (LS, F) - After a document is saved
Queryclose (LS, F) - Before a document is closed
Initialize (LS) - When a document is being loaded
Terminate (LS) - After the document is closed
Click (LS) -- form only - When an object is selected
Field
onClick (JS) - When an object is selected
onChange (JS) - When an object is changed
onBlur (JS) - When an editable field is deselected
onFocus (JS) - When an editable field is selected
Entering (LS) - When an editable field is selected
Exiting (LS) - When an editable field is deselected
Initialize (LS) - When a document is being loaded -- occurs after the Form Initialize event
Terminate (LS) - When a document is being closed
Action-onBlur (JS) - When an object is deselected
Button-onClick (JS) - When an object is selected
Hotspot
onDblClick (JS) - When an object is selected with a double-click
onFocus (JS) - When an editable field is selected
onHelp (JS) - When help is selected
onKeyDown (JS) - When a key is pressed down
onKeyUp (JS) - When a key is released
onMouseDown (JS) - When a mouse button is pressed down
onMouseMove (JS) - When the mouse is moved
onMouseOut (JS) - When the mouse is moved out of an object
onMouseOver (JS) - When the mouse is moved over an object
onMouseUp (JS) - When a mouse button is released
Click (LS, F) - When an object is selected
Objectexecute (LS) - When an object is activated by an OLE2 server that is FX/NotesFlow™ enabled
Initialize (LS) - When an object is being loaded
Terminate (LS) - When an object is being closed
Agent
Action (F) - When an agent is run
JavaAgent (J) - When an agent is run
Initialize (LS) - When an agent is being loaded
Terminate (LS) - When an agent is being closed
** WebQueryOpen and WebQuerySave must be a formula with the following syntax: @Command([ToolsRunMacro];"agentname").
da gibt es jede Menge 'Ereignisse', die man mit Aktionen (z. B. einem Agenten) belegen kann. Die 'gängigsten' sind wahrscheinlich PostOpen, QueryClose etc.
Anbei eine Liste aus der LN-Hilfe mit Hinweisen, wo das Ereignis stattfindet (z. B. Ansicht oder Feld etc.) und mit welcher Sprache (Formel, Script) man darauf zugreifen kann.
Ich hoffe, die Infos erschlagen dich jetzt nicht ;-).
Gruss, Sunnylein
---
The following table lists the events that can be automated using the formula language (F), LotusScript (LS), JavaScript (JS), and Java (J).
Database
Postopen (LS, F) - After a database is opened
Postdocumentdelete (LS, F) - After a document is deleted (the document is still available)
Queryclose (LS, F) - When a database is being closed
Querydocumentdelete (LS, F) - Before a document is marked for deletion
Querydocumentundelete (LS, F) - Before a document is unmarked for deletion
Querydragdrop (LS, F) - Before a drag and drop operation in a view
Postdragdrop (LS, F) - After a drag and drop operation in a view
Initialize (LS) - When a database is being loaded
Terminate (LS) - When a database is being closed
View
Queryopen (LS, F) - Before a view or folder is opened
Folder
Postopen (LS, F) - After a view or folder is opened
Regiondoubleclick (LS, F) - When a region in a calendar view is double-clicked
Queryopendocument (LS, F) - Before a document is loaded
Queryrecalc (LS, F) - Before a view or folder is refreshed
Queryaddtofolder (LS, F) - Before a document is added to a folder
Querypaste (LS, F) - Before a document is pasted
Postpaste (LS, F) - After a paste operation
Querydragdrop (LS, F) - Before a drag and drop operation in a calendar view
Postdragdrop (LS, F) - After a drag and drop operation in a calendar view
Queryclose (LS, F) - When a view or folder is being closed
Initialize (LS) - When a view or folder is loaded
Terminate (LS) - When a view or folder is being closed
Form
WebQueryOpen (F) -- form only - Before a Web document displays**
Subform
WebQuerySave (F) -- form only - Before a Web document is saved**
Page
HelpRequest (F) - When help is selected
JS Header (JS) - When a document is being loaded
onBlur (JS) - When an object is deselected
onClick (JS) - When an object is selected
onDblClick (JS) - When an object is selected with a double-click
onFocus (JS) - When an editable field is selected
onHelp (JS) - When help is selected
onKeyDown (JS) - When a key is pressed down
onKeyPress (JS) - When a key is pressed
onKeyUp (JS) - When a key is released
onLoad (JS) - After a document is opened
onMouseDown (JS) - When a mouse button is pressed down
onMouseMove (JS) - When the mouse is moved
onMouseOut (JS) - When the mouse is moved out of an object
onMouseOver (JS) - When the mouse is moved over an object
onMouseUp (JS) - When a mouse button is released
onReset (JS) -- form only- When a document is reset
onSubmit (JS) -- form only - Before a document is submitted
onUnload (JS) - Before a document is closed
Queryopen (LS, F) - Before a document is opened
Postopen (LS, F)-After a document is opened
Querymodechange (LS, F) - Before a document is changed to Read or Edit mode
Postmodechange (LS, F) - After a document is changed to Read or Edit mode
Postrecalc (LS, F) - After a document is refreshed (and values are recalculated)
Querysave (LS, F) - Before a document is saved
Postsave (LS, F) - After a document is saved
Queryclose (LS, F) - Before a document is closed
Initialize (LS) - When a document is being loaded
Terminate (LS) - After the document is closed
Click (LS) -- form only - When an object is selected
Field
onClick (JS) - When an object is selected
onChange (JS) - When an object is changed
onBlur (JS) - When an editable field is deselected
onFocus (JS) - When an editable field is selected
Entering (LS) - When an editable field is selected
Exiting (LS) - When an editable field is deselected
Initialize (LS) - When a document is being loaded -- occurs after the Form Initialize event
Terminate (LS) - When a document is being closed
Action-onBlur (JS) - When an object is deselected
Button-onClick (JS) - When an object is selected
Hotspot
onDblClick (JS) - When an object is selected with a double-click
onFocus (JS) - When an editable field is selected
onHelp (JS) - When help is selected
onKeyDown (JS) - When a key is pressed down
onKeyUp (JS) - When a key is released
onMouseDown (JS) - When a mouse button is pressed down
onMouseMove (JS) - When the mouse is moved
onMouseOut (JS) - When the mouse is moved out of an object
onMouseOver (JS) - When the mouse is moved over an object
onMouseUp (JS) - When a mouse button is released
Click (LS, F) - When an object is selected
Objectexecute (LS) - When an object is activated by an OLE2 server that is FX/NotesFlow™ enabled
Initialize (LS) - When an object is being loaded
Terminate (LS) - When an object is being closed
Agent
Action (F) - When an agent is run
JavaAgent (J) - When an agent is run
Initialize (LS) - When an agent is being loaded
Terminate (LS) - When an agent is being closed
** WebQueryOpen and WebQuerySave must be a formula with the following syntax: @Command([ToolsRunMacro];"agentname").
Antwort 2 von Sunnylein
Sorry, ich vergass...
Zuordnen kannst du die Reaktion auf ein Ergeigniss in einer Ansicht z. B. zu einem Aktionsbutton bzw. einem Agenten oder in einem Dokument zu einem Hotspot.
Vielleicht sagst du uns, was genau du umsetzen möchtest?
Gruss Sunnylein
Zuordnen kannst du die Reaktion auf ein Ergeigniss in einer Ansicht z. B. zu einem Aktionsbutton bzw. einem Agenten oder in einem Dokument zu einem Hotspot.
Vielleicht sagst du uns, was genau du umsetzen möchtest?
Gruss Sunnylein
Antwort 3 von bernd wegener
Hallo sunnylein,
so weit, so gut. Aber wie ordne ich jetzt einem Ereignis ein Makro zu ? Mein Problem ist speziell, daß ich in der Dokumentenübersicht auf eine mail doppelklicken möchte und das LS dann ausgeführt werden soll.
Vielleicht kennst Du ja den Weg.
Gruß
Bernd
so weit, so gut. Aber wie ordne ich jetzt einem Ereignis ein Makro zu ? Mein Problem ist speziell, daß ich in der Dokumentenübersicht auf eine mail doppelklicken möchte und das LS dann ausgeführt werden soll.
Vielleicht kennst Du ja den Weg.
Gruß
Bernd
Antwort 4 von Sunnylein
Hi,
also soll vor dem/beim Öffnen des Dokumentes (Mail) etwas passieren (die Ausführung eines Scripts)?
Das wäre dann normalerweise der PostOpen Event der (Memo-)Maske...
...dazu müßtest du die Möglichkeit haben, die Maske zu programmieren - also den DesignerClient und die nötigen Rechte haben (bei deiner eigenen Mailbox sollte das kein Problem sein).
Wenn du die Maske im Designer geöffnet hast, kannst du in das Feld für den PostOpen Event deine Formel bzw. dein Script eintragen.
Bei großen Firmen (z. B. bei uns) kann es allerdings sein, dass deine individuellen Änderungen beim 'Drüberbügeln' der Standard-Mailschablone allerdings wieder verloren gehen, wenn du in den Eigenschaften deiner Maildatenbank nicht das Häkchen bei "Gestaltung übernehmen" rausnimmst.
Falls du keinen DesignerClient hast, kannst du wahrscheinlich nur versuchen, dir einen Agenten zu erstellen (über das Menü "Erstellen" -> "Agent".
Dabei wird aber bei der Auswahl allerdings nicht angeboten, dass etwas beim Öffnen geschehen soll... was die Sache für dich wahrscheinlich uninteressant macht, oder?
Bye, Sunnylein
also soll vor dem/beim Öffnen des Dokumentes (Mail) etwas passieren (die Ausführung eines Scripts)?
Das wäre dann normalerweise der PostOpen Event der (Memo-)Maske...
...dazu müßtest du die Möglichkeit haben, die Maske zu programmieren - also den DesignerClient und die nötigen Rechte haben (bei deiner eigenen Mailbox sollte das kein Problem sein).
Wenn du die Maske im Designer geöffnet hast, kannst du in das Feld für den PostOpen Event deine Formel bzw. dein Script eintragen.
Bei großen Firmen (z. B. bei uns) kann es allerdings sein, dass deine individuellen Änderungen beim 'Drüberbügeln' der Standard-Mailschablone allerdings wieder verloren gehen, wenn du in den Eigenschaften deiner Maildatenbank nicht das Häkchen bei "Gestaltung übernehmen" rausnimmst.
Falls du keinen DesignerClient hast, kannst du wahrscheinlich nur versuchen, dir einen Agenten zu erstellen (über das Menü "Erstellen" -> "Agent".
Dabei wird aber bei der Auswahl allerdings nicht angeboten, dass etwas beim Öffnen geschehen soll... was die Sache für dich wahrscheinlich uninteressant macht, oder?
Bye, Sunnylein
Antwort 5 von bernd wegener
Hallo sunnylein,
nein, den Designer habe ich zur Verfügung und bin auch mittlerweile so weit, daß ich im Maskeneditor dem QueryOpen-Ereignis mein Makro zuordnen konnte (o.k., vielleicht etwas primitiv durch Hineinkopieren des Skript-Textes; gibt es da einen professionelleren Weg?).
Ich bekomme jetzt aber beim Doppelklick auf eine mail in der Ansicht einen Laufzeitfehler.
Da wir ohne nicht weiter komme, habe ich jetzt hier einmal den Skript-Text eingefügt:
Sub QueryOpen(Source As Notesuidocument, Mode As Integer, Isnewdoc As
Variant, Continue As Variant)
Dim doc As NotesDocument
Dim Receipt As String
Dim Antwort As Integer
Dim cMemoObject As Variant
Set cMemoObject = New UIMemoDocument
Call cMemoObject.Init(Source,Isnewdoc)
Set doc = source.document
If ((doc Is Nothing) Or (Source.IsNewDoc)) Then
Exit Sub
End If
Receipt = doc.ReturnReceipt(0)
If Receipt = "1" Then
Antwort = Msgbox ("Achtung! Soll die enthaltene
Empfangsbestätigunggelöscht werden?", 19, "Empfangsbestätigung aktiv!")
Select Case Antwort
Case 2 ' ------------------------- Abbrechen
Continue = False
Exit Sub
Case 6 ' -------------------------- Ja
Call doc.ReplaceItemValue("ReturnReceipt", "")
Call doc.Save(True, True)
Case 7 ' ------------------------Nein
End Select
End If
End Sub
Die Fehlermeldung lautet wie folgt:
"Variant does not contain an object"
Der Fehler tritt auf in der Zeile, in der cMemoObject initialisiert wird:
Call cMemoObject.Init(Source,Isnewdoc)
Die cMemoObject zugrundeliegende Klasse UIMemoDocument stammt aus der Skript-Library CoreEmailClasses, die ich mit "use" unter options (hoffentlich) korrekt eingebunden habe.
Hast Du eine Idee, was hier schief läuft ?
Wäre nett, wenn Du Dich noch einmal melden könntest.
Danke !
Bernd
nein, den Designer habe ich zur Verfügung und bin auch mittlerweile so weit, daß ich im Maskeneditor dem QueryOpen-Ereignis mein Makro zuordnen konnte (o.k., vielleicht etwas primitiv durch Hineinkopieren des Skript-Textes; gibt es da einen professionelleren Weg?).
Ich bekomme jetzt aber beim Doppelklick auf eine mail in der Ansicht einen Laufzeitfehler.
Da wir ohne nicht weiter komme, habe ich jetzt hier einmal den Skript-Text eingefügt:
Sub QueryOpen(Source As Notesuidocument, Mode As Integer, Isnewdoc As
Variant, Continue As Variant)
Dim doc As NotesDocument
Dim Receipt As String
Dim Antwort As Integer
Dim cMemoObject As Variant
Set cMemoObject = New UIMemoDocument
Call cMemoObject.Init(Source,Isnewdoc)
Set doc = source.document
If ((doc Is Nothing) Or (Source.IsNewDoc)) Then
Exit Sub
End If
Receipt = doc.ReturnReceipt(0)
If Receipt = "1" Then
Antwort = Msgbox ("Achtung! Soll die enthaltene
Empfangsbestätigunggelöscht werden?", 19, "Empfangsbestätigung aktiv!")
Select Case Antwort
Case 2 ' ------------------------- Abbrechen
Continue = False
Exit Sub
Case 6 ' -------------------------- Ja
Call doc.ReplaceItemValue("ReturnReceipt", "")
Call doc.Save(True, True)
Case 7 ' ------------------------Nein
End Select
End If
End Sub
Die Fehlermeldung lautet wie folgt:
"Variant does not contain an object"
Der Fehler tritt auf in der Zeile, in der cMemoObject initialisiert wird:
Call cMemoObject.Init(Source,Isnewdoc)
Die cMemoObject zugrundeliegende Klasse UIMemoDocument stammt aus der Skript-Library CoreEmailClasses, die ich mit "use" unter options (hoffentlich) korrekt eingebunden habe.
Hast Du eine Idee, was hier schief läuft ?
Wäre nett, wenn Du Dich noch einmal melden könntest.
Danke !
Bernd
Antwort 6 von bernd wegener
hallo sunnylein,
ein Fehler in dem vorigen Beitrag: Der Fehler tritt NICHT in der angegebenen Zeile auf. Ich kann die Ursache aber auch nicht genau lokalisieren.
Gruß
Bernd
ein Fehler in dem vorigen Beitrag: Der Fehler tritt NICHT in der angegebenen Zeile auf. Ich kann die Ursache aber auch nicht genau lokalisieren.
Gruß
Bernd
Antwort 7 von Sunnylein
Hi,
sorry, war eine Zeit lang nicht am Platz.
Hmm...
...zuerst müßte man mal genau herausbekommen, wann (an welcher Stelle des Scripts) die Sache schief läuft.
Die Fehlermeldungen in Notes halte ich für eine einzige Katastrophe *hust*, auf jeden Fall helfen sie nur manchmal, um die tatsächliche Ursache zu finden... trotzdem scheint es, als sei eine Deklaration nicht korrekt.
Was sagt denn der Debugger, wenn du schrittweise durchgehst?
Sunnylein
sorry, war eine Zeit lang nicht am Platz.
Hmm...
...zuerst müßte man mal genau herausbekommen, wann (an welcher Stelle des Scripts) die Sache schief läuft.
Die Fehlermeldungen in Notes halte ich für eine einzige Katastrophe *hust*, auf jeden Fall helfen sie nur manchmal, um die tatsächliche Ursache zu finden... trotzdem scheint es, als sei eine Deklaration nicht korrekt.
Was sagt denn der Debugger, wenn du schrittweise durchgehst?
Sunnylein
Antwort 8 von bernd wegener
Hallo sunnylein,
jo, das mit dem debugger war ein guter Hinweis, musste das Ding aber erst einmal finden.
Es sieht so aus, als ob der Fehler von wenigstens einer der anderen subs ausgelöst wird: der debugger bleibt dann in der postopen-routine hängen
Sub Postopen(Source As Notesuidocument)
Call cMemoObject.PostOpen(Source)
End Sub
cMemoObject ist hier offensichtlich nicht als Objekt definiert (wird in (Globals) Memo -> Declarations auch nur als Variant deklariert, es wird aber keine Objektreferenz zugewiesen.
1. Da dieser code schon vor dem Einfügen meiner queryopen-Routine existiert hat, warum bekomme ich erst jetzt die Meldung ?
2. Wie umschiffe ich dieses Problem jetzt am besten ?
(ich könnte natürlich den Code in allen anderen Ereignis-Subs löschen, aber das ist sicher nicht der Sinn der Sache)
Gruß
Bernd
jo, das mit dem debugger war ein guter Hinweis, musste das Ding aber erst einmal finden.
Es sieht so aus, als ob der Fehler von wenigstens einer der anderen subs ausgelöst wird: der debugger bleibt dann in der postopen-routine hängen
Sub Postopen(Source As Notesuidocument)
Call cMemoObject.PostOpen(Source)
End Sub
cMemoObject ist hier offensichtlich nicht als Objekt definiert (wird in (Globals) Memo -> Declarations auch nur als Variant deklariert, es wird aber keine Objektreferenz zugewiesen.
1. Da dieser code schon vor dem Einfügen meiner queryopen-Routine existiert hat, warum bekomme ich erst jetzt die Meldung ?
2. Wie umschiffe ich dieses Problem jetzt am besten ?
(ich könnte natürlich den Code in allen anderen Ereignis-Subs löschen, aber das ist sicher nicht der Sinn der Sache)
Gruß
Bernd
Antwort 9 von Sunnylein
Hi,
extrem gute Fragen *fg*.
Sorry, aber ohne selbst davor zu sitzen und alles selbst ausprobieren zu können, bin ich momentan ehrlich gesagt ein wenig ratlos, auch wenn ich selbst häufiger mit Notes programmiere.
Ich kann dir nur sagen, dass ich in meiner Mail-DB im PostOpen Event das gleiche drin stehen habe, das scheint folglich 'normal' zu sein. Daran würde ich auch erstmal nichts ändern. Der 'Fehler' trat, wie du sagtest, ja auch erst beim Einfühen des neuen Scripts im QueryOpen auf.
Sprichst/schreibst du gut Englisch?
Dann wäre deine Frage ein Posting auf einem speziellen LN-Board wert.
Dort hole ich mir oft 'Anregungen' und Antworten zu speziellen Fragen.
Vielleicht hilft dir auch eine Forumssuche dort schon weiter.
Hier einer meiner 'hilfreichsten' Links bei Notes-Fragen:
http://www-10.lotus.com/ldd/46dom.nsf
Die 'zweitbeste' Adresse ist meiner Ansicht nach:
http://spotlight.de/
Auch hier (deutschsprachig) gibt es viel mehr "Notes-Profis" als hier (so jedenfalls mein Eindruck ;-).
Auch wenn ich ad hoc keine Lösung für dich habe, wünsch' ich trotzdem erst mal einen schönen Feierabend.
Tschau
Sunnylein
extrem gute Fragen *fg*.
Sorry, aber ohne selbst davor zu sitzen und alles selbst ausprobieren zu können, bin ich momentan ehrlich gesagt ein wenig ratlos, auch wenn ich selbst häufiger mit Notes programmiere.
Ich kann dir nur sagen, dass ich in meiner Mail-DB im PostOpen Event das gleiche drin stehen habe, das scheint folglich 'normal' zu sein. Daran würde ich auch erstmal nichts ändern. Der 'Fehler' trat, wie du sagtest, ja auch erst beim Einfühen des neuen Scripts im QueryOpen auf.
Sprichst/schreibst du gut Englisch?
Dann wäre deine Frage ein Posting auf einem speziellen LN-Board wert.
Dort hole ich mir oft 'Anregungen' und Antworten zu speziellen Fragen.
Vielleicht hilft dir auch eine Forumssuche dort schon weiter.
Hier einer meiner 'hilfreichsten' Links bei Notes-Fragen:
http://www-10.lotus.com/ldd/46dom.nsf
Die 'zweitbeste' Adresse ist meiner Ansicht nach:
http://spotlight.de/
Auch hier (deutschsprachig) gibt es viel mehr "Notes-Profis" als hier (so jedenfalls mein Eindruck ;-).
Auch wenn ich ad hoc keine Lösung für dich habe, wünsch' ich trotzdem erst mal einen schönen Feierabend.
Tschau
Sunnylein
Antwort 10 von bernd wegener
Hallo sunnylein,
Heureka !
Die Lösung war eigentlich recht simpel: da ja, wie ich erwähnt habe, in (Globals) Memo -> Declarations cMemoObject zwar als "Variant" deklariert wird aber keine Objektreferenz zugewiesen wird, kommt es in allen Prozeduren, in denen das Objekt referenziert wird, außer QueryOpen zu der Meldung.
Ich habe daher ein
set cMemoObject = New UIMemoDocument
in die Initialize-Sub von (Globals) Memo eingefügt.
Danach konnte ich die Deklaration/Definition auch aus meiner queryopen-Routine entfernen.
Wenn ich meine eigene Antwort 8 noch einmal gründlicher gelesen hätte, hätte mir die Lösung eigentlich wie Schuppen aus den Haaren fallen müssen :->>
Aber ich habe den Eindruck, daß Lösungen im EDV-Bereich häufig auf ziemlich verschlungenen Pfaden zum Programmierer kommen *lol*
Zu guter letzt möchte ich mich noch bei Dir für die Hilfe und die viele Zeit, die Du mir geopfert hast, bedanken. Ich habe dadurch eine Menge gelernt.
Dir auch einen schönen Feierabend.
Gruß
Bernd
Heureka !
Die Lösung war eigentlich recht simpel: da ja, wie ich erwähnt habe, in (Globals) Memo -> Declarations cMemoObject zwar als "Variant" deklariert wird aber keine Objektreferenz zugewiesen wird, kommt es in allen Prozeduren, in denen das Objekt referenziert wird, außer QueryOpen zu der Meldung.
Ich habe daher ein
set cMemoObject = New UIMemoDocument
in die Initialize-Sub von (Globals) Memo eingefügt.
Danach konnte ich die Deklaration/Definition auch aus meiner queryopen-Routine entfernen.
Wenn ich meine eigene Antwort 8 noch einmal gründlicher gelesen hätte, hätte mir die Lösung eigentlich wie Schuppen aus den Haaren fallen müssen :->>
Aber ich habe den Eindruck, daß Lösungen im EDV-Bereich häufig auf ziemlich verschlungenen Pfaden zum Programmierer kommen *lol*
Zu guter letzt möchte ich mich noch bei Dir für die Hilfe und die viele Zeit, die Du mir geopfert hast, bedanken. Ich habe dadurch eine Menge gelernt.
Dir auch einen schönen Feierabend.
Gruß
Bernd
Antwort 11 von Sunnylein
Hallo Bernd,
danke für die Rückmeldung - auch ich lerne immer wieder gern was dazu.
Gruss, Sunnylein
danke für die Rückmeldung - auch ich lerne immer wieder gern was dazu.
Gruss, Sunnylein

