Privatordner "Eigene Dateien" ändern

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.

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.

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.