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.
Vergleicht man die Preise, so ist die Professional-Variante zwischen 200 - 700 DM
teurer (je nach Straßenpreis, Update bzw. Vollversion, Edition Small Business oder
Standard).
Ist das wirklich nötig ?
Wer Access wirklich will, einerseits viele
Anwender von Access hat aber andererseits nur wenige wirkliche Entwickler beschäftigt, hat
noch eine andere Möglichkeit: Access nicht als Vollversion in der Office
Professional Edition, sondern als kostenlose, abgespeckte Runtime-Version.
Hinweise
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.
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.
Eine ergänzende Info zum Thema Access 2003 und 2007 gibt es auf Heise.de.
|
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.
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.
|
- Was ist die 'Runtime'-Version und woher bekommt man sie ?
-
Die
Runtime (auch als Laufzeit-Version bezeichnet) von Access ist eine spezielle, abgespeckte
Version von Access und wird als Installationsversion mit der Office Developer
Edition geliefert. Diese kostet etwa 2500 DM und ist für Entwickler, die
Lösungen mit (programmierten) Access Datenbanken erstellen. Damit die Entwickler das gerne
tun und mit ihren Produkten gleichzeitig auch Access promoten, bietet ihnen MS
die Runtime-Version, die die Entwickler ohne weitere Lizenzzahlungen und in beliebiger
Zahl mit ihrer Access-Eigenentwicklung (in der einfachsten Form ist das eine .mdb/.mde-Datenbank)
verkaufen/verschenken dürfen.
Vielleicht reicht es aus lizenzrechtlicher Sicht sogar, wenn Ihnen
ein Besitzer der Office-Developers Version eine kleine selbstgestrickte Datenbank
mit seiner Runtime-Version schenkt, und sie
diese dann installieren - (ohne Gewähr).
- Was kann die Runtime-Version ?
-
Diese Version von Access kann Datenbanken 'ausführen', bietet aber keine Möglichkeiten,
Datenbanken zu verändern. Das Datenbankfenster, also dort wo man zwischen Tabellen, Abfragen,
Formularen, Berichten, Seiten und Modulen wählen kann, ist nicht sichtbar und die Runtime
kann diese Datenbankobjekte nicht in der Entwurfsansicht öffnen.
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.
- Wie richtet man ein Formular ein, das beim Öffnen
einer Access-Datenbank startet ?
- Dazu bietet Access drei Möglichkeiten an:
- Im Menü 'Extras' -> 'Start...' wählt man im Dropdown-Feld 'Formular/Seite anzeigen ...'
das Formular aus, welches beim Öffnen der Datenbank automatisch angezeigt werden soll.
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.
- Man legt ein Makro mit dem Namen 'AutoExec' an. In diesem Makro kann man das Öffnen
von einem oder mehreren Formularen festlegen, indem man für jedes Formular die Aktion
'ÖffnenFormular' hinzufügt.
Diese Lösung hilft, wenn beim Start gleiche mehrere Formulare geöffnet und einige
zusätzliche Aktionen durchgeführt werden müssen.
- Access kann beim Start mit einer Befehlszeilenoption aufgerufen werden, die ein beliebiges
Makro startet. Dazu legt man einen Link auf dem Desktop oder im Startmenü an, der so aufgebaut
ist:
"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.
- Kann man die Runtime 'mal ausprobieren ?
- Die Funktionalität der Runtime-Version kann man auch mit einem ganz normalen Access aus
der Professional-Edition ausprobieren, denn mit einem speziellen Schalter kann man bei
Access den Runtime-Modus erzwingen. Zum Ausprobieren 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, der zweite Teil der Pfad zu einer beliebigen
Datenbank und der dritte Teil ist der Schalter '/runtime'
- Ist die Runtime an eine spezielle Datenbank (MDB/MDE) gebunden ?
-
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.
- Kann man das Betriebssystem frei wählen ?
-
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.
- Wie groß ist die Runtime-Installation ?
-
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.
- Was passiert mit älteren Datenbanken ?
-
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.
- Kann man mit der Runtime auch Datenbanken warten ?
-
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.
- Was ist der Unterschied zwischen Runtime und MDE ?
-
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.
- Läuft gerade die Runtime oder die Vollversion ?
-
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:
liefert TRUE zurück, falls die Runtime aktiv ist. Wenn man von außen, z.B. mit einem VBS prüfen
will, ob auf dem System eine Vollversion oder eine Runtime verfügbar ist, dann hilft diese Anweisung
CreateObject("Access.Application").SysCmd(6)
Auch hier ist der Rückgabewert TRUE, falls nur die Runtime auf dem System installiert ist.
- Was ist die MDSE ?
-
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.
|