Office: Open Outlook from Access

Helfe beim Thema Open Outlook from Access in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich würde gerne Outlook von Access aus öffnen - benutze Outlook und Access 2007. Hier der Code den ich auch schon mehrfach gefunden... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Schlauchi, 11. Januar 2010.

  1. Schlauchi Erfahrener User

    Open Outlook from Access


    Hallo zusammen,

    ich würde gerne Outlook von Access aus öffnen - benutze Outlook und Access 2007. Hier der Code den ich auch schon mehrfach gefunden habe - aber leider nichts auslöst - auch keine Fehlermeldung:
    Code:
    Public Sub OpenOutlookTask()
      Dim oOutlookApp As Object
      On Error Resume Next
      Set oOutlookApp = GetObject(, "Outlook.Application")
      If Err <> 0 Then
      Set oOutlookApp = CreateObject("Outlook.Application")
      End If
    End Sub
    
    Ich kann zwar Outlook wunderbar per "Task-Scheduler" starten.... aber das ist nicht Sinn des ganzen. Ich muss Outlook offen haben, damit ich nachträglich Emails aus Access per Skript verschicken kann.

    Idee warum es nicht geht?
     
    Schlauchi, 11. Januar 2010
    #1
  2. miriki Erfahrener User
    Setz mal einen Breakpoint auf den Anfang der Routine, beende ggf. Outlook und geh dann, wenn der erreicht wird, im Single-Step mit F8 zeilenweise weiter. Wird die Zeile mit dem CreateObject überhaupt durchlaufen?

    Ich kann die Routine nicht ausprobieren, da ich hier mit Lotus Notes arbeite, aber was mir auffällt: Die Variable "Err" wird zwar abgefragt, aber ich sehe nicht, daß ihr vorher auch mal ein Wert zugewiesen wird, geschweige denn, daß sie deklariert wurde ("option explicit" gesetzt?).

    Gruß, Michael
     
  3. Schlauchi Erfahrener User
    Gelöst

    Hab einen ganz einfachen Weg gefunden
    Zum öffnen von Outlook:
    Code:
    Shell "Outlook.exe"
    
    Zum schliessen von Outlook:
    Code:
    Shell "taskkill /IM Outlook.exe"
    
    So einfach gehts... hoffe das funktioniert dann auch in der Runtime - das muss noch getestet werden.
     
    Schlauchi, 12. Januar 2010
    #3
  4. miriki Erfahrener User

    Open Outlook from Access

    Re: Gelöst

    Hm, nicht schön, aber "zunächst mal" akzeptabel. Ich würde das aber nur als Übergangslösung verwenden.
    ... schief!

    Das ist "Prinzip Brechstange" und kann Dir so einiges zerschießen. Mal davon abgesehen, daß keine Kontrolle besteht, ob die Mails bereits versendet sind...

    Vor allem aber wird dem Outlook hier brutal der Saft abgedreht, egal, was es gerade erledigt. Das kann das Versenden der Mails sein, aber vielleicht auch das Komprimieren von Ordnern. Das wirst du aber erst merken, wenn Du mal das Pech hast, Outlook gerade mal nicht im "idle"-Status zu killen.

    Das nächste Öffnen von Outlook danach mit beschädigten Postfach-Dateien wird dann nicht mehr so spaßig...

    Aber grundlegend fehlt hier noch was drumherum: a) sollte geprüft werden, ob Outlook bereits läuft, dann b) entfällt das Starten, aber auch c) das Beenden von Outlook.

    Und falls Outloook gestartet und beendet werden soll, dann würde ich mal gucken, ob es Status-Abfragen gibt, was Outlook gerade auf der To-Do-Liste hat und es erst beenden, wenn diese abgearbeitet ist.

    Und für das Beenden gibt es sicherlich schönere Wege als das Weghacken der Beine...

    Gruß, Michael
     
  5. Schlauchi Erfahrener User
    Prinzip Brechstange - ja. Beim öffnen von Outlook ist das wohl eher kein Problem - beim Schließen verstehe ich die Problematik.

    Hab das ganze mit dem Breakpoint wie beschrieben gemacht - auf zwei PCs laufen lassen - keine Reaktion. Entweder läuft das unter Windows 7 nicht mehr so... oder warum gehen all die Outlook "Öffner" aus Access nicht?

    Gut - gibt es alternativen zu Outlook? Kann man vielleicht direkt auf einen SMTP Server zugreifen und die Mails verschicken? Gibt ja genügend Programme die das super beherrschen.. aber für Access hab ich da noch nichts gefunden.

    Gruß
    Björn
     
    Schlauchi, 12. Januar 2010
    #5
  6. miriki Erfahrener User
    Hmmm... Was heißt "keine Reaktion"? Wird der Breakpoint nicht erreicht? Dann ist das Problem irgendwo einen Schritt vorher. Wenn die Routine zum Öffnen von Outlook erst gar nicht aufgerufen wird, kann sich auch kein Outlook öffnen. ;-)

    Oder wird die Zeile nach dem "IF" nicht durchlaufen? Dann hakt es mit der "ERR"-Abfrage. Ev. hilft dann eine Abfrage
    Code:
    if ooutlookapp is nothing
    oder sowas in der Art. Was liefert die Funktion GetObject() denn zurück, wenn das Objekt nicht gefunden wurde? Ich tippe auf "Null" bzw. "Nothing", kann jetzt aber gerade leider nicht nachgucken.

    Ein blöder Nebeneffekt kann auch das "on error resume next" sein: Das GetObject() erzeugt einen Fehler, der unterdrückt, aber nicht weiter ausgewertet wird.

    Wahrscheinlich hilft dann eine etwas andere Struktur in der Art:

    Code:
    sub OutlookGeraffel
    
      'variablen deklarieren usw.
    
    FindeOutlook:
      On Error Resume OeffneOutlook
      Set oOutlookApp = GetObject(, "Outlook.Application") 
      on error goto 0
    
    BenutzeOutlook:
      'mails verschicken usw.
    
    BeendeOutlook:
      'outlook "sauber" beenden
    
      exit sub
    
    OeffneOutlook:
      Set oOutlookApp = CreateObject("Outlook.Application") 
      resume benutzeoutlook
    
    end sub
    Und genau genommen müßte man den Block nach dem Label "OeffneOutlook" ebenfalls mit "on error" sichern und bei Fehlschlag die Routine mit Fehlermeldung "Outlook nicht verfügbar" oder so in der Art verlassen.

    Gruß, Michael
     
  7. Schlauchi Erfahrener User
    Hallo Michael,

    also, ich hab das alles mal durchgetestet - irgendwo hackt die Sache leider immer wieder. Wenn es dann in meiner Testumgebung läuft - läufts auf dem Server nicht... (anderes Outlook - anderes Windows etc)

    Gibt es eine Möglichkeit direct einen SMTP Server anzusprechen? Ohne Outlook zu verwenden... dann wäre das ganze viel flexibler. Quasi IP Adresse, Benutzername, Passwort etc... und direkt raus damit. Geht das?

    Danke
    Gruß
    Björn
     
    Schlauchi, 29. Januar 2010
    #7
  8. Schlauchi Erfahrener User

    Open Outlook from Access

    SMTP direkt ansteuern

    Hallo zusammen,

    nach ein wenig suchen und tüfteln - hier in Code der euch ganz leicht jeden SMTP Server konfigurieren lässt:
    Code:
    Public Sub EMail_Reminder_SMTP()
     Const cdoSendUsingPort = 2
        Const cdoBasic = 1
        Dim objCDOConfig As Object, objCDOMessage As Object
        Dim strSch As String
    
        strSch = "http://schemas.microsoft.com/cdo/configuration/"
        Set objCDOConfig = CreateObject("CDO.Configuration")
        With objCDOConfig.Fields
            .Item(strSch & "sendusing") = cdoSendUsingPort
            .Item(strSch & "smtpserver") = "smtp.DeinServer.con"
            ' Nur wenn der SMTP Server Authentication benötigt
            .Item(strSch & "smtpauthenticate") = cdoBasic
            .Item(strSch & "sendusername") = "Benutzername"
            .Item(strSch & "sendpassword") = "ServerPasswort"
            .Update
        End With
    
        Set objCDOMessage = CreateObject("CDO.Message")
        With objCDOMessage
            Set .Configuration = objCDOConfig
            .from = "Der Absende Name"
            .sender = "Die Absende Adresse@..."
            .To = "die Empfänger Adresse@..."
            .Subject = "Beispiel CDO Message"
            ' TextBody für Emails in Plain Text Format
            '.TextBody = "Dies ist ein normaler Text"
            ' HTMLBody für Emails im Rich Text (HTML) Format
            .HTMLBody = "Test CDO Rich Text [B]Auch in FETT![/B] A wonderful thing :-)"
            ' Anhänge 
            '.AddAttachment "c:\eineDatei.zip"
            '.AddAttachment "c:\nochEineDatei.pdf"
            ' Un-Rem next line to get "Return Reciept Request"
            '.MDNRequested = True
            .Send
        End With
        Set objCDOMessage = Nothing
        Set objCDOConfig = Nothing
    
    End Sub
    Somit - kein Outlook mehr nötig - Access schickt schön brav alles direkt über den SMTP Server :-)

    Allerdings - keine Speicherung der versendeten Emails!! Evtl. noch ein CC ein bauen...
     
    Schlauchi, 31. Januar 2010
    #8
Thema:

Open Outlook from Access

Die Seite wird geladen...
  1. Open Outlook from Access - Similar Threads - Open Outlook from

  2. Open XML-Formate und -Dateinamenerweiterungen

    in Microsoft Excel Tutorials
    Open XML-Formate und -Dateinamenerweiterungen: Open XML-Formate und -Dateinamenerweiterungen Excel für Microsoft 365 Word für Microsoft 365 PowerPoint für Microsoft 365 Office 2019 Excel 2019 Word...
  3. Workbook open ohne Rückfragen

    in Microsoft Excel Hilfe
    Workbook open ohne Rückfragen: Hallo, ich möchte ein externes Workbook im LeseModus, mit deaktievierten Makros und ohne Aktualisierung (Verweise... Funktionen..) öffnen. Aktuell habe ich geschrieben: workbook.open...
  4. In Word automatisch Felder ausfüllen

    in Microsoft Word Hilfe
    In Word automatisch Felder ausfüllen: Hallo, ich habe ein Dokument in Open Office, welches Eingabefelder enthält. Beim Öffnen der Datei erscheint also das Eingabefeld automatisch und ich gebe diverse Werte ein für verschiedene...
  5. 2 Spalten adieren ohne eine 3. Spalte

    in Microsoft Excel Hilfe
    2 Spalten adieren ohne eine 3. Spalte: Hallo, ich brauche für einen Sparclub eine Formel e.c.t. und zwar Spalte D kommt der betrag rein was in der aktuellen Woche gespart wurde in Spalte E ist der bisherige Sparbetrag und in Spalte F...
  6. 2 Zellen zusammen rechnen jedoch ohne eine 3 Zelle

    in Microsoft Excel Hilfe
    2 Zellen zusammen rechnen jedoch ohne eine 3 Zelle: Hallo, ich bin ein absoluter Neuling und bräuchte eure Hilfe Bitte. ich möchte das Zelle G und Zelle H zusammen gerechnet werden und das Ergebnis soll in Zelle H angezeigt werden. Das ganze ist...
  7. Office 2007 - Open-Office öffnet Excel-Dateien nur schreibgeschützt

    in Microsoft Excel Hilfe
    Office 2007 - Open-Office öffnet Excel-Dateien nur schreibgeschützt: Hallo Forum, einer unserer Kunden bekommt jeden Tag per Mail mehrere Excel-Dateien von uns. Leider arbeitet dieser Kunde nicht mit MS-Office, sondern mit Open-Office. Wechseln möchte unser Kunde...
  8. "Button open Rechts"

    in Microsoft Excel Hilfe
    "Button open Rechts": moinsen schuat euch mal bitte den Anhang an. ist ein Ausschnitt aus einer Excel Tabelle. Ich möchte in einem anderen Excel Blatt genau so ein Button anbringen, wie es in der Datei oben rechts...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden