WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 11.01.2005, 08:17   #1
NasenBär
Master
 
Registriert seit: 01.08.2001
Beiträge: 527


Standard VBA - Outlook

Hy!

Folgendes Problem:
Hab in meinem Outlook zusätzlich zu unserem Exchange-Server einen Archivordner (pst-Datei) angelegt, um die Postfachgröße des Servers nicht zu belasten und um gewisse Mails die sich im Archivordner befinden auch ohne Netz verwenden/lesen zu können! Will jetzt aber noch meine Kontakte und meinen Kalender vom Server auf den Archivordner kopieren. Damit diese aber auch immer aktuell sind, soll das kopieren beim schließen von Outlook passieren! Hab den Code fürs kopieren bereits erstellt (derzeit wird nur stur kopiert, die alten Daten vom Archivordner werden noch nicht gelöscht) und funktioniert soweit auch!
Jetzt wollte ich noch den Code automatisch ausführen lassen (eben beim schließen)!

Hab dafür folgendes Beispiel gefunden:
MSDN-Microsoft Beispiel

Danach bin ich vorgegangen. Hat jedoch bei mir keinen Erfolg gebracht! Denn er mach beim schließen genau gar nichts! ;(

Hier ist mein tatsächlicher Code:
Die msgbox Befehle dienen nur um zusätzlich die Ausführungen zu kontrollieren! Beim starten führt er auch die initialize_handler routine aus, aber eben beim Beenden passiert nichts!

Code vom Klassenmodul Klasse1:

Dim WithEvents myOlApp As Outlook.Application

Sub Initialize_handler()
MsgBox ("init")
Set myOlApp = CreateObject("Outlook.application")
End Sub

Private Sub myOlApp_Quit()
MsgBox ("ger")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myfolder = myNameSpace.Folders("Archivordner")
Set myfolder2 = myNameSpace.Folders("Jankech Gerrit")

'Kontakte kopieren
Set myfolder4 = myfolder2.Folders("kontakte")
Set myNewFolder = myfolder4.CopyTo(myfolder)

'Kalender kopieren
Set myfolder5 = myfolder2.Folders("Kalender")
Set myNewFolder = myfolder5.CopyTo(myfolder)

MsgBox "Goodbye, " & Application.GetNamespace("MAPI").CurrentUser
End Sub



Code von DieseOutlookSitzung

Dim c_App As New Klasse1

Sub Application_Startup()
Call c_App.Initialize_handler
End Sub

Was hab ich falsch gemacht!?
Hoffe ihr könnt mir weiterhelfen!

mfg
NasenBär ist offline   Mit Zitat antworten
Alt 11.01.2005, 09:12   #2
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

Auf den 1. Blick würde ich vermuten, daß "Private Sub myOlApp_Quit()" nicht aufgerufen wird.

"Application_Quit()" ist eine Ereignisprozedur für "DieseOutlookSitzung". Hier muß wahrscheinlich der Aufruf erfolgen.

mfg

WB
wbendl ist offline   Mit Zitat antworten
Alt 11.01.2005, 15:17   #3
NasenBär
Master
 
Registriert seit: 01.08.2001
Beiträge: 527


Standard

hy!

das hab ich auch am anfang versucht nur kommt dann bei dieser zeile
Set myfolder = myNameSpace.Folders("Archivordner")
eine fehlermeldung! --> anscheinend hat er da bereits keinen zugriff auf die pst datei! (siehe dateianhang)

also ich weiß leider nicht mehr weiter!

mfg
NasenBär ist offline   Mit Zitat antworten
Alt 11.01.2005, 20:33   #4
cg32
Jr. Member
 
Registriert seit: 10.06.2000
Beiträge: 84


Standard

Zitat:
Original geschrieben von NasenBär
Set myfolder = myNameSpace.Folders("Archivordner")
Folders

Gibt die Folders-Auflistung zurück, die alle Ordner darstellt, die in dem angegebenen Ordner oder Namespace enthalten sind. Bei dem NameSpace-Objekt handelt es sich um die Basis aller Ordner des jeweiligen Namespace.

Auszug aus der VBA-Hilfe.

Ohne es auszuprobiert haben denke ich es müsste so funktionieren:

Set myfolder = myNameSpace.Folders.Item(X)

X als Index

Alternavic kannst du auch mit Folders.Next durch alle Folder loopen und den gewünschten Ordner suchen.
cg32 ist offline   Mit Zitat antworten
Alt 11.01.2005, 21:19   #5
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

Die Fehlermeldung ist leider nicht sehr aussagekräftig. Das ist bei VB oft der Fall.

Ich glaube nicht, daß der Fehler an einem nicht verfügbaren Ordner liegt. "Application_Quit()" wir am Anfang des Shutdowns ausgelöst. Da sollte der Ordner noch da sein.

Wenn ich das 1. Posting richtig verstanden habe, funktioniert der Code. Nur wenn er durch das Ereignis ausgelöst wird, gibts einen Fehler.
Da wäre der Versuch mit einem anderen Ereignis eine Möglichkeit. (z. B. nach einer Veränderung)

Zum Testen laß dir von "Application_Quit()" alle Ordner auflisten. Vielleicht bringt das einen Hinweis auf das Problem.

mfg

WB
wbendl ist offline   Mit Zitat antworten
Alt 20.01.2005, 07:35   #6
NasenBär
Master
 
Registriert seit: 01.08.2001
Beiträge: 527


Standard

hy!

mit
Set myfolder = myNameSpace.Folders.Item(X)
hat es funktioniert!

danke für die hilfe!

mfg
NasenBär ist offline   Mit Zitat antworten
Alt 20.01.2005, 09:51   #7
NasenBär
Master
 
Registriert seit: 01.08.2001
Beiträge: 527


Standard

hy!

hab mich zu früh gefreut!

hab die gleich fehlermeldung beim schließen!
aber wenn outlook offen ist geht es!

mfg
NasenBär ist offline   Mit Zitat antworten
Alt 20.01.2005, 10:30   #8
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

"Application_Quit()" wird ausgelöst, wenn der Shutdown von Outlook beginnt. Eigentlich sollten da noch alle Ordner verfügbar sein.

Zum Testen laß dir von "Application_Quit()" alle Ordner auflisten.
Wenn das nicht funktioniert, versuch es mit einem anderen Ereignis.

Als letzte Möglichkeit: Eine Schaltfläche mit dem Code belegen, und händisch sichern.

mfg

WB
wbendl ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:58 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag