aktuell geöffnetes Dokument löschen

  • Hallo zusammen,


    in einem Mail hab ich eine Schaltfläche eingefügt, die Abfrage dahinter aktualisiert eine Spalte in einer Access-Datenbank. Klappt auch soweit. Nun würde ich gerne das geöffnete Mail automatisch löschen lassen, wenn der Button einmal geklickt wurde. Damit die Leute nicht auf die Idee kommen, den Button mehrmals zu drücken.


    Eine MSGBOX scheidet AFAIR aus, da die Access Version auf den Clients nur eine RUNTIME ist. Im Oktober letzten Jahres hatte ich hier schon mal einen Thread dazu, da kam das Problem mit den Messageboxen auf.


    Gibts eine Möglichkeit für meinen Wunsch?


    Vielen Dank schon im voraus.


    Servus
    Sunny

  • Einfacher wäre es den knopf zu verstecken, oder die aktion einen wert kontrollieren zu lassen, und dann die funktione einfach nicht ein zweites mal ausführen.
    1. kann mann mittels hide-when formel machen kann, der z.B. mit einen notes.ini variabele oder
    2. den funktion "ausblenden" nur mittels notes.ini.


    Den nutzung der notes.ini erlaubt es in jeder umgebung zu machen, und dazu tagesabhängig oder in eine maildb wodrin du keine rechte hast so etwas zu tun.


    Ronka

  • Hallo ronka,


    danke für Deinen Vorschlag. Das ist ganz bestimmt ein Option. Damit hast Du mich für die Zukunft auf eine Idee gebracht > einfachen einen Wert in eine Tabelle einfügen und entsprechend abfragen.


    Auch hab ich das jetzt einfach nochmal mit dem Messageboxen versucht und es hat geklappt. Hier mein Code:


    Sub Initialize
    Dim se As New NotesSession

    'Neue LSX-Session
    Dim thislcsession As New LCSession

    'Verbindung zur ACCESS Datenbank herstellen
    Dim con As New Lcconnection("oledb")
    con.provider = "Microsoft.Jet.OLEDB.4.0"
    con.server = "D:\VP\alkdaten.mdb"
    con.Userid = "admin"
    con.Password = "" '(Username und Passwort falls benötigt)
    con.metadata = "T_KOPSA_ARCHIVIERUNG" 'Welche Tabelle wird angesprochen
    con.Connect 'Verbindung zur Datenquelle herstellen
    Msgbox "Die Tabelle wird aktualisiert!"
    Call con. Execute ("UPDATE T_KOPSA_ARCHIVIERUNG SET T_KOPSA_ARCHIVIERUNG.AuftragWert = ([T_KOPSA_ARCHIVIERUNG].[AuftragWert]/116*100) WHERE ((([T_KOPSA_ARCHIVIERUNG].[Datum])<#4/30/2006#) AND ((T_KOPSA_ARCHIVIERUNG.AuftragWert)>0) AND ((T_KOPSA_ARCHIVIERUNG.C02)<>'N' And (T_KOPSA_ARCHIVIERUNG.C02)<>'S' And (T_KOPSA_ARCHIVIERUNG.C02)<>'K'))", Nothing)
    Msgbox "Die Tabelle wurde aktualisiert, sie können dieses Mail nun schliessen und löschen!"
    con.Disconnect

    End Sub


    So funktioierts auch mit den Messageboxen in der Runtime von Access. Wenn die User das nochmals aufrufen, sind sie selber schuld. ;)


    Servus
    Sunny

  • Wenn du in die Schaltfläche etwas einbaust wie


    Dim ws As New NotesUIWorkspace
    Dim memoUIdoc As NotesUIDocument
    Dim memodoc As NotesDocument
    Set memoUIdoc=ws.CurrentDocument
    Set memodoc=memoUIdoc.Document
    If memodoc.HasItem("Ausgefuehrt") Then
    Msgbox "Diese Aktion wurde bereits ausgeführt - Aktion abgebrochen"
    Exit Sub
    End If
    ....
    Dein Code
    ....
    If memodoc.HasItem("Ausgefuehrt") Then
    memodoc.Ausgefuehrt=memodoc.Ausgefuehrt(0)+1
    Else
    memodoc.Ausgefuehrt=1
    End If
    Call memoUIdoc.RefreshHideFormulas
    Call memodoc.Save(False,False,False)


    Mit dem Ausführen verschwindet die Schaltfläche aus dem sichtbaren UI-Dokument, wenn du eine entsprechende HIDE-WHEN-Formel darauflegst
    @IsAvailable(Ausgefuehrt)


    Ich baue so etwas immer in Schaltflächen-Mails ein, mit denen ich die automatische Generierung von Verbindungsdokumenten oder sonstigen zeitgebundenen Einmalaktionen versende. Wer weiß, ob sonst jemand in ein paar Jahren noch einmal die Mail entdeckt und wieder draufdrückt - und dann stimmen die Inhalte nicht mehr.

  • Hallo zusammen,


    bitte entschuldigt das ich so einen alten Thread wieder aufwärmen muß.


    Kann mir bitte jemand verraten, wie man den Button dann wieder sichtbar macht?



    Ich hatte es damals doch nicht ausprobiert, warum auch immer, und jetzt möchte ich es tun, weiß aber nicht wie ich den Button wieder sichtbar machen kann.


    Vielen Dank schon im voraus.


    Servus
    Sunny


    %edit
    Code Formatiert /diali

    • Offizieller Beitrag

    Du müsstest die HW-Formel anpassen.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hallo nochmal,


    der komplette Code läuft auf meinem 8.5er Client. Auf den 7.02er Clients hingegen läuft er nicht.


    Zuerst wird DISCONNECT bei con.Disconnect als Not a Sub or a Function bemängelt. Kommentiere ich die Zeile aus, wird Call con. Execute bemängelt: Illegal parenthesized reference: EXECUTE. Mach ich das Call davor weg und wieder hin, kommt Variable required USERID. Kurzum, ich bekomm es nicht zum laufen. Auch dachte ich, es macht keinen Unterschied ob es auf einem 8.5er Client oder auf einem 7.02er läuft.


    Kann mir jemand helfen?


    Vielen Dank schon im voraus.


    Servus
    Sunny

  • Zitat

    Klingt danach als ob die entsprechenden Klassen nicht per UseLSX eingebunden sind


    Hmm, und was soll mir das sagen? Fehlen noch irgendwelche Aufrufe? Oder gibts eine andere Möglichkeit zum Ziel zu kommen?


    Vielen Dank schon im voraus.


    Servus
    Sunny

  • Hallo,


    so, jetzt funktioniert es. In den Options mußte ich noch ein Uselsx "*lsxlc" hinzufügen, speichern und schon gehts.


    Vielen Dank für den Hinweis auf Hilfe nochmals, ich hatte zwar vorher schon in den Beispielen dazu gesucht, aber diesen Hinweis überlesen. :)


    Servus
    Sunny