Autor Thema: Object Variable not set  (Gelesen 5414 mal)

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Object Variable not set
« am: 13.09.02 - 21:08:03 »
@all
Hi!

Hilfe! Komme hier mal wieder nicht weiter!

Ich mnöchte doch einfach nur das Dokument per Mail versenden. (Also nicht nur einen Verweis darauf!)
Ich habe auch in den Eigenschaften der Maske eingestellt, dass die Maske im Doc gespeichert wird.
Folgendendes Script habe ich als Aktion:

Sub Click(Source As Button)
     'Variablendeklaration
     Dim WS As New NotesUIWorkSpace
     Dim UiDoc As NotesUIDocument
     Dim Doc As NotesDocument
     Dim Speicher As Variant
     
     'Variableninitialisierung
     Set UIDoc = WS.CurrentDocument
     
     Call Doc.Send(True)
     
End Sub

Wenn ich dies aber ausführen lasse, dann sagt Notes mir Object Variable not set!

Wo ist mein Fehler???

Danke schon vorab für eure Hilfe!

Liebe Grüße,
Marion
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline harkpabst_meliantrop

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
  • I love!
    • Heute schon gelebt?
Re: Object Variable not set
« Antwort #1 am: 13.09.02 - 22:07:52 »
Du verschickst ein doc, das du noch gar nicht hast. Es fehlt ein

set doc = uidoc.Document


Oder gleich in einem Term

set doc = ws.CurrentDocument.Document

dann brauchst du die Variable uidoc gar nicht.

--E<:|
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Object Variable not set
« Antwort #2 am: 13.09.02 - 22:24:07 »
Hi harkpabst_meliantrop!
Irgendwann werde ich das auch noch begreifen, das mit dem ganzen Deklarieren im Script...

Habe das ausprobiert, aber jetzt sagt Notes:

No Form associated with document

Was kann das jetzt schon wieder bedeuten?

Gruß, Marion
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re: Object Variable not set
« Antwort #3 am: 14.09.02 - 00:48:02 »
hallo maja,

folgendes aus der Notes Help:

Call notesDocument.Send( attachForm [, recipients ] )

Parameters
attachForm
Boolean. If True, the form is stored and sent along with the document. If False, it isn't.
recipients
String or array of strings. Optional. The recipients of the document, which may include people, groups, or mail-in databases.
Usage
If you have only Reader access to a database, you can run a LotusScript agent that creates and sends a document, but the agent will not work if you attach a file to that document.
There are two kinds of items that can affect the mailing of the document when you use Send:
If the document contains additional recipient items, such as CopyTo or BlindCopyTo, Notes mails the documents to these recipients.
If the document contains items to control the routing of mail, such as DeliveryPriority, DeliveryReport, or ReturnReceipt, Notes uses these when sending the document.
Sending the form increases the size of the document, but insures that the recipient can see all of the items on the document.

Also ein (true) noch dazu und das wars.
doc.send(true)

wenn nix, dann mußt du selbst alles machen, wie etwa die Form bestimmen vor dem senden:
doc.form="Memo"...
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Object Variable not set
« Antwort #4 am: 16.09.02 - 08:37:02 »
@rob_green

Das mit dem doc.send(true) habe ich ja...
Nur dass da eben die Fehlermeldungen kommen...

Verstehe nur nicht, warum Notes meint, dass keine Maske eingebunden ist...
Das habe ich  zumindest aktiviert...

Und was meinst du mit:

quote]wenn nix, dann mußt du selbst alles machen, wie etwa die Form bestimmen vor dem senden:
doc.form="Memo"...[/quote]

Was muss ich in die Aktion noch ein Set doc.form=Ankündigung hinzufüge, dann sagt Notes mir Types Mismatch...

Aber irgendwie muss es ja gehen, denn wenn ich das von Notes vorgegebene Senden nehme, dann wird das Doc mitgesendet...

Liebe Grüße, Marion
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Object Variable not set
« Antwort #5 am: 16.09.02 - 08:40:19 »
HMM, ist denn in der Datenbank eine Vorgabe Maske festgelegt ??

eknori
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Object Variable not set
« Antwort #6 am: 16.09.02 - 08:50:52 »
Also in den Maskeneigenschaften habe ich den Punkt "Vorgabe-Datenbankmaske" aktiviert.
Reicht das?
Oder muss ich noch was anderes aktivieren?
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Zimmi

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re: Object Variable not set
« Antwort #7 am: 16.09.02 - 08:56:52 »
Hi Marion,

wenn du die Maske übergibst, da musst du den Maskennamen als String übergeben - in deinem Beispiel:
Set doc.form = "Ankündigung"

Übrigens - hast du ein Feld SendTo in deiner Maske eingebaut, in der die Empfänger enthalten sind ???

Grüße von
Zimmi
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Object Variable not set
« Antwort #8 am: 16.09.02 - 09:02:12 »
Hi!

Das mit der Anweisung  "set doc.form = Ankündigung" habe ich eingefügt (siehe vorheriges Posting)
Dann sagt Notes mir Types mismatch, wenn ich die Aktion ausführe.

Wenn ich jetzt sage "set doc.form="Ankündigung" dann kommt beim Speichern die Fehlermeldung: SET may only be used on class instance assignments.

Und das Feld sendto ist vorhanden. Das nimmt Notes auch... Habe ich schon getestet...

Gruß, Marion
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re: Object Variable not set
« Antwort #9 am: 16.09.02 - 10:19:36 »
Biene,

aus der Help nur kurz zum Set Statement (auch wenn es Dir jetzt vielleicht nix bringt), weil Du das falsch anwendest:

Assigns an object reference to a variable, or associates an object with a variable.
Use one of the following three syntaxes:
Syntax 1: Create an object and assign a reference
Set var = New class [ ( [ argList ] ) ]
Elements
var
A Variant variable, an object of the class class, an object of a class derived from class, or any variable element that accepts an object reference, such as an element of an array, list, or user-defined data type.
class
The name of the user-defined or product class of the object to be created.


Das "set doc.form=..:" ist - wie Du es schon bemerkt hast - falsch.

Korrekt muß es im Gesamtkontext lauten zB:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
doc.Form = "Memo"
doc.Subject = "Reminder!"
doc.EncryptOnSend = True
doc.Body = "A document awaits your approval in " _
+ db.Title

Call doc.Send( False, "Susanna Coil" )
(Erklärung aus Notes Help:
This script creates and mails (but doesn't save) a new document from the current database. It sets the Form to "Memo" so that its recipient can read it as a mail memo. The document is encrypted for Susanna Coil.)
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Object Variable not set
« Antwort #10 am: 16.09.02 - 11:27:38 »
SUPI!!!!!!!!!! Es funktioniert!

An alle ganz lieben Dank!!!
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline harkpabst_meliantrop

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
  • I love!
    • Heute schon gelebt?
Re: Object Variable not set
« Antwort #11 am: 16.09.02 - 13:09:02 »
Vielleicht fassen wir nochmal kurz zusammen, bevor bienemaja zusammenbricht:

Wenn das Dokument, das gerade geöffnet ist, verschickt werden soll, dann genügt dazu ein einfaches @MailSend (oder die Standardaktion Send Document, die es in jeder Maske gibt). Das setzt voraus, dass es in der Maske (genaugenommen in dem Dokument) zumindest das Feld SendTo mit der Mail-Adresse des Empfängers gibt.

Ist die Maske, mit der die Mail erstellt wurde, nicht die Standard-Memo-Maske, dann existiert sie in der Mail-Datenbank des Empfängers wahrscheinlich nicht, er kann die Mail also vermutlich nicht einfach öffnen und Lesen. In diesem Fall muss man die Maske mit dem Dokument speichern/versenden. In den Maskeneigenschaften muss also "Store form in document" ausgewählt sein. Das funktioniert aber nur, wenn das Dokument vor dem Senden bereits gespeichert ist, sonst hat es keine Form-Informtaionen.

Alternativ kann man @MailSend auch mit Parametern benutzen (siehe Hilfe), die Felder SendTo, Body etc. müssen dann im Dokument nicht unbedingt existieren (oder dürfen anders heißen). In dieser Variante wird das Mail immer mit der Maske "Memo" erzeugt (auch wenn "Store form in document" angehakt ist) und Notes übersetzt die Inhalte automatisch in die Standardfelder, die Mail-Clients erwarten (zugegeben, ich hab's nicht gewusst, sondern gerade ausprobiert).

Script benötigt man eigentlich nur dann unbedingt, wenn man ein zu versendendes Dokument "aus der hohlen Hand" erzeugen und über das Backend füllen möchte. So kann man Mails sogar völlig unabhängig vom gerade geöffneten Dokument erzeugen.

Wenn man trotzdem das gerade aktuelle Dokument versenden will, gilt im Prinzip dasselbe wie oben: Entweder müssen die benötigten Felder (mit den richtigen Namen) bereits im Dokument vorhanden sein, oder man muss sie per Script vor dem Versand einfügen (wie von Rob in seinem Beispiel hervorgehoben).

Auch hier gilt: Wenn das Dokument noch nicht gespeichert ist, besitzt es noch keine Form. Selbst wenn "Store form in documetn" angehakt ist, liefert doc.send(true) deshalb einen Fehler (es gibt keine Form, die mitgeschickt werden könnte). Es sei denn, man setzt wieder explizit im Script das Form-Feld auf den gewünschten Wert. (Aber wehe, man verschreibt sich beim Formname, dann kommt keine Warnung, aber da es die Maske dann nicht gibt, wird auch keine mitgeschickt.)

Der Parameter "True" in doc.Send(True) macht die Maskeneigenschaft "Save doc in form" überflüssig. Also eventuell doch ein Grund, Script zu benutzen, wenn mit dieser Maske auch Dokumente gespeichert werden sollen, bei denen das Mitspeichern der Maske unerwünscht ist.

So, war das jetzt wirklich eine kurze Zusammenfassung ???
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline harkpabst_meliantrop

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
  • I love!
    • Heute schon gelebt?
Re: Object Variable not set
« Antwort #12 am: 16.09.02 - 13:10:36 »
Ups, etwas zu spät...
Das kommt davon, wenn man ein Posting anfängt und dann erst Stunden später abschickt ... ;)
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re: Object Variable not set
« Antwort #13 am: 16.09.02 - 13:32:37 »
macht nix, ist doch prima informativ  :D
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline bienmaja

  • Junior Mitglied
  • **
  • Beiträge: 69
  • Geschlecht: Weiblich
  • Keep on smiling! :-)
Re: Object Variable not set
« Antwort #14 am: 16.09.02 - 14:42:52 »
Also ich muss auch sagen, dass ich das sehr klase finde!

Aber jetzt muss ich dich aber dann noch mal "löchern" :-)...

    [*
    Wenn ich deinen Text richtig verstehe, dann kann ich das Document also auch per Formula versenden, wenn ich es vorher speichere. ]
    « Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

    Offline bienmaja

    • Junior Mitglied
    • **
    • Beiträge: 69
    • Geschlecht: Weiblich
    • Keep on smiling! :-)
    Re: Object Variable not set
    « Antwort #15 am: 16.09.02 - 14:52:46 »
    ...irgendwie sollte man auch wirklich auf Vorschau klicken, wenn man es sich ansehen will... .-)

    also hier noch mal...

    • Wenn ich deinen Text richtig verstehe, dann kann ich das Document also auch per Formula versenden, wenn ich es vorher speichere.
      Und das Doc versende ich, indem ich den Punkt [includeDoclink] leer lasse, aber dafür den Punkt "Vorgabe-Datenbankmaske" aktivieren muss. Oder liege ich hier falsch?
    • Ich kann es aber auch weiterhin per Script machen... Wenn ich da vorher das Document speichere, dann kann ich den Punkt "Vorgabe-Datenbankmaske" wieder deaktivieren. Was doch dann bedeutet, dass meine Datenbank nicht so groß wird, wie andersrum. Aber das die externen Leute das Formular trotzdem per Mail bekommen. Richtig?


    Und mein Fehler ist nur aufgetreten, weil ich eben das Dokument nicht vorher gespeichert habe. Und ihm daher sozusagen noch nicht die passenden Informationen angehängt worden sind?
    That's right?

    Aber trotzdem noch mal Danke für die ausführliche Erklärung! Sie hat mir einiges verständlicher gemacht...

    Liebe Grüße,
    Marion
    « Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

     

    Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz