Privatordner „Eigene Dateien“ ändern

Veröffentlicht am 01.10.2004

Beim Öffnen bzw. Speichern einer Office-Datei gibt Windows den Ordner „Eigene Dateien“ als Verzeichnis vor. Der Name dieses Ordners befindet sich auch in der Windows-Registratur, damit alle Applikationen darauf zugreifen können. Mit den Funktionen zum Bearbeiten der Registratur können Sie diese Voreinstellung innerhalb von Access ändern.

Zur Vorbereitung benötigen Sie den folgenden Programmcode im Deklarationsbereich:

Public Const HKEY_CURRENT_USER = &H80000001 
Public Const KEY_QUERY_VALUE = &H1 
Public Const ERROR_SUCCESS = 0& 
Public Const REG_SZ = 1 
Public Const KEY_SET_VALUE = &H2
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias _
       "RegOpenKeyExA" (ByVal hKey As Long, _
       ByVal lpSubKey As String, ByVal ulOptions As Long, _
       ByVal samDesired As Long, phkResult As Long) As Long
Declare Function RegSetValue Lib "advapi32.dll" Alias _
        "RegSetValueExA" (ByVal hKey As Long, _
        ByVal lpValueName As String, ByVal Reserved As Long, _
        ByVal dwType As Long, lpData As Any, _
        ByVal cbData As Long) As Long
                         
Declare Function RegCloseKey Lib "advapi32.dll" _
       (ByVal hKey As Long) As Long

Der betreffenden Schlüssel zum Ändern des Standardverzeichnisses finden Sie im Bereich HKEY_CURRENT_USER unter Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

Eine VBA-Funktion, die den neuen Standardordner für Office-Dokumente ändert, sieht wie folgt aus: 

Public Function PrivatordnerÄndern(strNeuerOrdner As String) 
Dim strSchlüssel As String, lSchlüssel As Long 
Dim Länge As Long 
    strSchlüssel = "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" 
    Länge = Len(strNeuerOrdner) 
    If RegOpenKeyEx(HKEY_CURRENT_USER, strSchlüssel, _
                                   ByVal 0&, KEY_SET_VALUE, lSchlüssel) _ 
                                   = ERROR_SUCCESS Then 
        If RegSetValue(lSchlüssel, "Personal", ByVal 0&, _
                                         REG_SZ, ByVal strNeuerOrdner, Länge) _ 
                                         = ERROR_SUCCESS Then 
            Debug.Print "Privatordner geändert" 
    Else 
            Debug.Print "Privatordner nicht geändert" 
    End If 
    RegCloseKey lSchlüssel 
    End If 
End Function

Um den Privatordner in „C:\MeineDokumente“ zu ändern, rufen Sie die Funktion folgendermaßen auf: 

PrivatordnerÄndern ("C:\MeineDokumente")

Beachten Sie, daß die Änderung erst beim nächsten Start der Anwendung wirksam wird.

Unsere Dienstleistungen

Als starker Partner an Ihrer Seite unterstützen wir Sie in folgenden Breichen:

Access-Programmierung

Benötigen Sie Unterstützung bei der Programmierung von Access-Anwendungen? Wir bieten die gesamte Bandbreite von der Access-Programmierung auf Stundenbasis bis zur Durchführung eines Software-Projektes als Auftragsarbeit an. Kontaktieren Sie uns für ein kostenloses Erstgespräch.

JETZT KONTAKTIEREN

Software-Beratung

Haben Sie ein Software-Projekt und Sie wissen nicht, ob Access die richtige Plattform ist? Wir haben über 20 Jahre Erfahrung beim Erstellen von Windows-, Web und mobilen Anwendungen. Kontaktieren Sie uns für eine kostenlose Erstberatung.

JETZT KONTAKTIEREN