vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
E-Mails abspeichern 
Autor: dRoZ
Datum: 18.01.12 12:00

Moin,
bin neu hier im Forum und hoffe ihr könnt mir eine kleine Hilfe geben wie ich den Fehler abfangen kann falls der Benutzer nicht die Berechtigung auf einen Pfad besitzt.

Sub EMailCategory()
  'On Error Resume Next
  Dim sName As String
  Dim mpath As String
  Dim mdate As String
  Dim mname As Variant
  Dim mcat As String
  Dim mcat1 As String
  Dim fName As String
 
  Const PATH = "\\Netzlaufwerk1\Test" 'Berechtigungen zum Schreiben vorhanden
  'Const PATH = "\\Netzlaufwerk2\Test" ' keine Berechtigungen vorhanden
  'Const PATH = "D:\abc\test" 'Berechtigung zum Schreiben nicht vorhanden, aber _
    zum lesen
 
  If Application.ActiveExplorer.Selection.Count = 0 Then
      Exit Sub
  End If
 
  For Each objitem In Application.ActiveExplorer.Selection
 
        'SubjectName
        sName = objitem.Subject
        'Ersetzt Sonderzeichen
        ReplaceCharsForFileName sName, "_"
 
        'Empfangszeit der E-Mail wird ausgelesen
        mdate = Format(objitem.ReceivedTime, "yyyy-mm-dd_hh-nn-ss")
 
        'Auslesen des Senders
        mname = Split(objitem.Sender, "(")
        mname(0) = Left(mname(0), Len(mname(0)) - 1) 'schneidet ein Leerzeichen 
        ' weg
 
        'Prüfung ob Kategorie selektiert wurde
        If objitem.Categories = "" Then
            mpath = PATH & "\non_category\"
        Else
            mcat = Replace(objitem.Categories, ";", "_")
            mcat1 = Replace(mcat, " ", "")
            mpath = PATH & mcat1 & "\"
        End If
 
        'Falls Ordner nicht vorhanden wird er erstellt
        If Dir$(mpath, vbDirectory + vbHidden) = "" Then
                MkDir mpath
            End If
 
        'Datei abspeichern
        fName = mpath & mdate & "__" & sName & "_" & mname(0) & ".msg"
        objitem.SaveAs fName, 3
 
        If Dir(PATH & fName) <> "" Then
        MsgBox "Die E-Mail " & sName & " von " & mname(0) & " konnte nicht" & _
          "gespeichert werden." & vbCrLf & "Grund: keine Schreibberechtigung" & _
          "für den Ordner."
 
        Else
        MsgBox "Alles okay!"
        End If
 
  Next
 
End Sub
 
Private Sub ReplaceCharsForFileName(sName As String, _
  sChr As String _
)
'Funktion zum ersetzen der Sonderzeichen
 
  sName = Replace(sName, "/", sChr)
  sName = Replace(sName, "\", sChr)
  sName = Replace(sName, ":", sChr)
  sName = Replace(sName, "?", sChr)
  sName = Replace(sName, Chr(34), sChr)
  sName = Replace(sName, "<", sChr)
  sName = Replace(sName, ">", sChr)
  sName = Replace(sName, "|", sChr)
End Sub
Die bisher eingesetzte Methode prüft ob die Datei erstellt wurde, wenn nicht halt die Fehlermeldung.
Das ganze geht auch an sich, jedoch nur wenn man auf dem entsprechenden Pfad auch Leseberechtigungen besitzt damit das Makro guckt ob die Datei existiert.

Gibt es eine Fehlerausgabe von .saveAs welche aussagt "Moment mal, du hast keine Zugriffrechte!" ?


Ich hoffe ich habe mich verständlich genug ausgedrückt! ;)

Vielen Dank schonmal!

____________________________________

...vorhanden!

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
E-Mails abspeichern1.114dRoZ18.01.12 12:00
Re: E-Mails abspeichern572dRoZ20.01.12 09:31

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel