[Access in Firmen] · [Anwendung] · [Praxis-Beispiel] · [FAQ Runtime]
Access wird gerne in Firmen verwendet, um kleine Datenbanklösungen zu realisieren. Weil an den meisten Büro-Arbeitsplätzen ohnehin die üblichen Office-Pakete von Microsoft verwendet werden, lizenziert man dann je Arbeitsplatz ein komplettes Office-Paket mindestens in der 'Professional'-Version wegen Access, obwohl sonst eine 'Office Standard Edition' oder eine 'Office Small Business Edition' völlig ausreichen würde. Doch vergleicht man die Preise, so ist die Professional-Variante deutlich teurer als die anderen Versionen obwohl viele Anwender Access nur nutzen, aber nicht mit Access entwickeln.
Wer Access wirklich will, einerseits viele Anwender von Access hat aber andererseits nur wenige wirkliche Entwickler beschäftigt, hat noch eine andere Möglichkeit: Die Anwender erhalten Access nicht als Vollversion in der Office Professional Edition, sondern in Kombination mit einem kostengünstigeren Office-Paket, bei dem die kostenlose, abgespeckte Runtime-Version von Access nachinstalliert wird.
Alle Angaben zu Lizenzen sind ohne Gewähr und beziehen sich auf die normale Office-Lizenz. Ob die Erfahrungen auf andere Lizenzmodelle von MS ('Open Licence') übertragbar sind, wurde nicht geprüft.
Die hier wiedergegebenen Erfahrungen wurden mit Office 2000 gewonnen. Ob sich beispielweise Access 2000 Datenbanken mit den Runtime-Versionen von Access 2007 und 2010 öffnen lassen, ist mir nicht bekannt.
Diese Beschreibung soll eine Idee für einen sinnvollen, kostensparenden Einsatz von Access geben. Man sollte sich in jedem Falle vor dem Einsatz einer eigenen Lösung versichern, daß diese mit den geltenden Lizenzbedingungen verträglich ist.
Microsoft bietet die Runtime zum Download an. Über die üblichen Suchmaschinen kann man bei Microsoft mit den Suchbegriffen "Access Runtime Download site:microsoft.com" die verschiedenen Versionen finden und herunterladen.
Oft gibt es in einer Firma nur wenige Mitarbeiter, die mit Access so umgehen können, daß sie auch Datenbanken entwerfen und programmieren können bzw. sollen. Für die Praxis bietet sich daher folgendes Vorgehen an:
Die Entwickler in der Firma erhalten (mindestens) die Office Professional-Edition.
Die Datenbanken werden so geschrieben, daß beim Öffnen ein Formular startet, über das alle übrigen Formulare, Berichte und Funktionen, mit denen der Anwender arbeiten darf, ausführbar sind.
Ein Mitarbeiter erhält die Aufgabe, aus den Datenbanken der anderen Entwickler Installationspakete zu erstellen. Er benötigt dafür eine Office Developer-Edition. Alternativ werden die Runtime-Versionen vom Systemadministrator auf allen Rechnern vorinstalliert und den Anwendern wird nur noch die MDB eingerichtet.
Die reinen Anwender erhalten eine Standard oder Small Business Edition und zusätzlich wird auf ihren Rechnern die Access-Runtime-Version installiert.
Folgendes Beispiel habe ich in der Praxis erprobt:
Eine Gruppe von Mitarbeitern sollte Texte erstellen und mit einer Reihe von Begleitinformationen in einer gemeinsamen Access-Datenbank abspeichern. Das Problem wurde wie folgt gelöst:
Auf den Rechnern der Mitarbeiter wurde jeweils die Access-Runtime Version installiert.
Die Datenbank befand sich auf einem Windows 98 Rechner im Netzwerk, auf dem ebenfalls nur eine Runtime (für Wartungsarbeiten wie 'Datenbank komprimieren') installiert war.
Jeder Mitarbeiter erhielt auf dem Desktop ein Icon, welches einen Link auf die Datenbank darstellte.
Ein Wartungsskript übernahm die tägliche Datensicherung der Access-Datenbank
Das Problem war damit unter Kostengesichtspunkten optimal gelöst. Dabei halfen einige erleichternde Umstände:
Die in Access gespeicherten Daten wurden veröffentlicht, es gab also kein Problem mit der Geheimhaltung.
Jeder Mitarbeiter bearbeitete nur die von ihm erstellten Datensätze, so daß Konflikte auf Datensatzebene praktisch nicht auftraten.
Selbst wenn nur die Durchsicht der Datensätze notwendig war, betrug die Zeit zwischen der Übermittlung zweier Datensätze über das Netzwerk ca. 10 min. so daß die Netzwerkbelastung auch bei mehreren Benutzern mäßig war.
Das Beispiel zeigt, daß man mit der Runtimeversion durchaus auch komplexere Probleme lösen kann - ohne Kosten für Access-Lizenzen.
Wichtig: Access 2000 kennt in 'Extras' -> 'Optionen' die Einstellung 'Beim Schließen komprimieren'. In diesem Fall führte die aktivierte Option zu Fehlern, weil jeder, der seine Datenbankinstanz schließt, automatisch ein Komprimieren auslöst, was die Verbindung der anderen aktiven Benutzer trennt und die ihre Datenänderungen nicht mehr speichern können! Leser dieser Seite haben mich inzwischen darauf aufmerksam gemacht, dass es ein spezielles Problem von Windows 98 gewesen sein könnte.
Dies scheint zunächst ein Nachteil zu sein, aber andererseits erhält der Anwender so nicht einmal die Werkzeuge, um eine vorhandene Datenbank zu bearbeiten. Unbeabsichtigte oder vorsätzliche Veränderungen sind daher für den Benutzer der Runtime nicht möglich.
Weitere Unterschiede sind eher als Bugs anzusehen, z.B. sollen sich Filter nicht setzen lassen, es gibt
Probleme mit DoCmd.OutputTo acOutputTable
und mit dem Snapshot-Viewer.
Damit man mit der Datenbank, welche die Runtime öffnet, arbeiten kann, muß ein Startformular oder das Makro 'Autostart' eingerichtet sein.
Diese Lösung ist am einfachsten, aber: Von dem gewählten Startformular aus müssen alle anderen Formulare geöffnet werden können. Hilfe für ein Übersichtsformular bietet Access im Menü 'Extras' -> 'Datenbank-Dienstprogramme' mit der Funktion 'Übersichts-Manager' an. Erklärungen dazu finden Sie in der Access Hilfe.
Diese Lösung hilft, wenn beim Start gleiche mehrere Formulare geöffnet und einige zusätzliche Aktionen durchgeführt werden müssen.
"C:\PfadZuAccess\MSACCESS.EXE" "W:\PfadZurDatenbank\DatenBank.mdb" /x
MakroName
Der Link beginnt mit dem Pfad zu Access oder zur Runtime-Version, es folgt der Pfad zur Datenbank und dann
kommt die Startoption /x
mit einem Leerzeichen und dem Namen des aufzurufenden Makros (plus
weitere Startoptionen, von denen Access ja genug bietet)
Diese Lösung empfiehlt sich dann, wenn man ein Netzwerk hat und mehrere Benutzer mit der gleichen Datenbank arbeiten sollen. Durch den Link kann man nämlich beliebige Makros starten, es ist also möglich, für verschiedene Benutzer jeweils eigene Startformulare zu zeigen, so dass man nur eine Datenbank für mehrere Aufgaben verwenden kann: Ein Benutzer sieht nur Formulare zur Datenerfassung, der nächste Benutzer sieht nur Formulare zur Datenauswertung ...
Für alle Lösungen gilt: Ein einmal geschlossenes Formular kann nur noch durch
programmierte Hilfsmittel (z.B. Schaltflächen in anderen Formularen) wieder geöffnet werden. Das heißt umgekehrt,
dass man den Anwender von Formularen aussperren kann, wenn man ihm keine Möglichkeit programmiert, diese zu
öffnen. Nur mit der Vollversion von Access bekäme er wieder Zugang zu solchen Formularen.
Falls der Anwender irgendwann alle Formulare geschlossen haben sollte, kann er die Datenbank nicht mehr
verwenden. Um die Arbeit fortzusetzen, muss er die Access Runtime schließen und mit der Datenbank erneut starten.
Bauen sie also entsprechende Sicherheitsabfragen in Ihre Formulare ein.
Wer seine Datenbank auf Tauglichkeit für die Verteilung an Runtime-Benutzer testen möchte, kann sie mit der Funktionalität der Runtime-Version auf zwei Arten ausprobieren:
Die normale Access-Vollversion aus der Professional-Edition kann mit einem speziellen Schalter in den Runtime-Modus umgeschaltet werden. Dazu klickt man mit der rechten Maustaste auf den Desktop, wählt 'Neu' → 'Verknüpfung' aus und gibt folgendes ein:
"C:\Programme\Microsoft Office\Office\Msaccess.exe" "C:\Eigene Dateien\MeineDaten.mdb"
/runtime
Der erste Teil ist der Pfad zum normalen Access-Programmdatei, der zweite Teil der Pfad zu der zu testenden
Access-Datenbank und der dritte Teil ist der Schalter '/runtime'
Wie eingangs bereits beschrieben, bietet Microsoft versxchiedene Runtime-Versionen zum Download an. Verschiedene Versionen der Runtime kann man beispielsweise in verschiedenen virtuellen Maschinen installieren und damit seine Anwendungen abgeschottet von einer Vollversion testen.
Nein, für einen Rechner reicht einmaliges installieren der Runtime aus. Danach kann man mit der Runtime jede Access-Datenbank bearbeiten - soweit die Datenbank an die beschränkten Möglichkeiten der Runtime angepasst ist.
Die Runtime läuft auf jedem Betriebssystem - solange es Windows heißt. Für den Mac gibt es zwar MS Office, für dieses bietet MS aber kein Access, ergo gibt es dort keine Runtime.
Bei Access 97 gab es noch eine Version, die mit 8 MB auskam. Access 2000 belegt dagegen stolze 128 MB - über 50 MB gehen dabei auf das Konto des Internet-Explorer, der automatisch der Installation hinzugefügt wird. Bei den neueren Versionen fragt sowieso niemand mehr nach dem Installationsumfang …
Wenn die Runtime eine Datenbank öffnen soll, die mit einer früheren Access-Version erstellt wurde, dann möchte sie diese gerne kompilieren oder sie erlaubt nur den Lesezugriff auf die Datenbank. Wenn kein Kompilierfehler auftritt (bei VBA kommt das häufig vor, beispielsweise wenn Autostart-Makros enthalten sind) arbeitet die Runtime dann mit der kompilierten Version der Datenbank.
Ja. Bei Fehlern muß die Datenbank nicht auf einen anderen Rechner verschoben werden. Die Startoptionen
/compact
und /repair
(wird bei Access 2000 automatisch mit /compact
erledigt) funktionieren auch mit der Runtime-Version von Access. An einer anderen Stelle habe ich ein einfaches
Wartungsskript beschrieben, welches sowohl mit der Runtime, als auch mit der
normalen Access-Version funktioniert.
Beides sind völlig unterschiedliche Konzepte, daher ist ein Vergleich nicht sinnvoll. Bei der MDE-Datei schützt man den Code, indem man ihn kompiliert und den Quellcode aus der MDB nicht in die MDE-Datei kopiert. Formulare, Berichte und Module mit VBA-Code können nicht mehr in die Entwurfsansicht geschaltet werden, das Hinzufügen ist ebenfalls nicht mehr möglich. Tabellen und Abfragen sind jedoch nach wie vor frei zugänglich und veränderbar.
Bei der Runtime verhindert die installierte Access-Version die volle Kontrolle über die Datenbank. Sobald die Datenbank auf einen Rechner mit der Vollversion von Access kopiert wird, kann sie normal bearbeitet werden.
Gelegentlich werde ich gefragt, ob man in VBA feststellen kann, ob die Datenbank gerade von einer Vollversion
oder von der Runtime betreut wird. Nun, dafür gibt es einen Befehl:
SysCmd(acSysCmdRuntime)
CreateObject("Access.Application").SysCmd(6)
Die MSDE ist eine andere Datenbankmaschine (angelehnt an den SQL-Server), die ebenfalls für Access eingesetzt
werden kann, nämlich dann, wenn man ein Projekt (*.adp) anlegt. Die MSDE ist ebenfalls kostenlos (ohne Gewähr,
Installationsdatei "X:\SQL\X86\SETUP\SETUPSQL.EXE
" auf der ersten Office 2000 CD). Sie soll für bis zu
5 Nutzer geeignet (Access JET eher nur für einen Benutzer) und kompatibel zum SQL-Server sein.
Die Nutzer brauchen in jedem Falle die Access-Runtime, zusätzlich muss aber auf dem Server (oder einem Rechner
eines Nutzers) die MSDE installiert und ein Dienst gestartet werden.