Um ACCESS-Datenbanken wirklich zu schützen, muss man für die Datenbank eine Arbeitsgruppen-Datei (.mdw-Datei) erstellen. Netzwerk-User müssen beim Aufruf der Datenbank diese .mdw-Datei dann mit vollständigem Laufwerk/Pfad/Dateiname als Parameter angeben! Das Ganze hat natürlich viele Nachteile:
Dann geht gar nichts mehr und der Admin erntet (zu Recht) einen Riesenhaufen Telefon-Anfragen (weil das eben vorauszusehen war). Deshalb habe ich mir Gedanken gemacht und hierbei ist mir folgende Idee gekommen:
Lösung: Wir benötigen eine START-Access-Datenbank:
Wollen wir das Ganze also mal versuchen, zu realisieren: 1. Erstellen Sie eine neue Datenbank "START_(Hauptdatenbankname).mdb" in einem beliebigen Verzeichnis auf Ihrer Festplatte und fügen nachfolgenden Code in ein Modul ein: Option Compare Database Option Explicit Public Const MDW_DIR = "MDW" 'Unterverz. für die .mdw Public Function AppPath() As String ' Aktuellen Pfad vollständig ermitteln mit \ am ENDE ' Dieter Otter ' http://www.vbarchiv.net/archiv/tipp_1187.html Dim sPath As String ' Name und Pfad der aktuellen Datenbank sPath = CurrentDb.Name ' reine Pfadangabe extrahieren While Right$(sPath, 1) <> "\" sPath = Left$(sPath, Len(sPath) - 1) Wend ' Anwendungspfad zurückgeben AppPath = sPath End Function Public Function StartBankName() As String ' Nur Name dieser START....mdb ermitteln ' Microsys Kramer ' http://www.vbarchiv.net/archiv/tipp_892.html ' nur Dateiname ohne Pfad StartBankName = Dir$(CurrentDb.Name) End Function
Public Function MDW_Name() As String ' Name der Arbeitsgruppen-Datei .mdw If Left(StartBankName(), 6) = "START_" Then MDW_Name = Left$(MDB_Name(), Len(MDB_Name()) - 4) & ".mdw" End If End Function Public Function AccessPath() As String ' ACCESS-Pfad (der MSAccess.exe) mit \ am ENDE AccessPath = Application.SysCmd(acSysCmdAccessDir) End Function Fügen Sie ein weiteres Modul mit folgendem Code hinzu: Public Function BankStarten() Dim MDB_DAT As String ' MDB volle Länge Dim MDW_DAT As String ' MDW volle Länge Dim EXE_DAT As String ' MSACCESS-EXE volle Länge Dim X ' Shell-Prozess-ID Dim PAR_1 As String ' Parameter- (Optionen-) String für ACCESS-Aufruf ' *** MDB vorhanden ? *********** MDB_DAT = AppPath() & MDB_Name() If Len(Dir(MDB_DAT)) = 0 Then MsgBox "Datenbank:" & vbNewLine & MDB_DAT & vbNewLine & vbNewLine & "nicht gefunden !" DoCmd.Quit acQuitSaveNone End If ' *** MDW vorhanden ? *********** MDW_DAT = AppPath() & MDW_DIR & "\" & MDW_Name() If Len(Dir(MDW_DAT)) = 0 Then MsgBox "ArbeitsGruppenDatei:" & vbNewLine & MDW_DAT & vbNewLine & vbNewLine & "nicht gefunden !" DoCmd.Quit acQuitSaveNone End If ' *** MSACCESS.EXE vorhanden ? *********** EXE_DAT = AccessPath() & "MSACCESS.exe" If Len(Dir(EXE_DAT)) = 0 Then MsgBox "ACCESS-EXE:" & vbNewLine & MDW_DAT & vbNewLine & vbNewLine & "nicht gefunden !" DoCmd.Quit acQuitSaveNone End If ' **** Aufruf mit Parametern ********* ' Parameter- (Optionen-) String PAR_1 = "/wrkgrp " & Chr(34) & MDW_DAT & Chr(34) & " " & Chr(34) & MDB_DAT & Chr(34) ' mdb öffnen X = Shell(EXE_DAT & " " & PAR_1, vbMaximizedFocus) ' Start-Bank schliessen ! DoCmd.Quit acQuitSaveNone End Function Jetzt benötigen wir noch ein Makro "AUTOEXEC" mit folgenden Befehlen:
2. Kopieren Sie nun Ihre Haupt-Datenbank in das erstellte Verzeichnis. 3. Erstellen Sie in dem Verzeichnis ein weiteres Unterverzeichnis "MDW" und kopieren in das Verzeichnis die Arbeitsgruppen-Datei. 4. Jetzt nur noch die START_(Hauptdatenbankname).MDB aufrufen (der Start-...mdb kann man dann sogar noch ein einfaches Access-Datenbank-Kennwort verpassen...) Und wenn Sie jetzt das komplette Verzeichnis auf ein freigegebenes Netzlaufwerk kopieren, funktioniert das Ganze genauso, als würde die MDB lokal aufgerufen werden! Dieser Tipp wurde bereits 27.216 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |