![]() |
||
![]() |
Aktuellen Anwender ermittelnEine unter Access 2000 entwickelte Datenbank steht in einer Mehrbenutzer-Umgebung mehreren Anwendern zur Verfügung. Nun möchten Sie ermitteln können, wer in diesem Moment auf die Datenbank zugreift. Diese Anforderung können Sie mit einer VBA-Prozedur realisieren (CHIP-Code MEHRBEN). Die abgedruckte Prozedur »angemeldeteNutzer()« erfüllt diese Aufgabe, mit kleiner Unterstützung durch die Funktion »entferneNullChar()«. Sie erzeugt für jeden momentan angemeldeten Datenbank-Nutzer eine Dialogmeldung, die seinen Login und seinen Computernamen preisgibt.
Die Prozedur »angemeldeteNutzer()« bedient sich zur Erfüllung ihrer Aufgabe eines »Connection«-Objekts und der Methode »OpenSchema«. Zuerst erzeugen Sie das »Connection«-Objekt, das eine geöffnete Verbindung zu einer Datenquelle repräsentiert. Die abgedruckte Prozedur übergibt dabei die benötigten Parameter als String--Variable »strConnect«. Dies sind der Provider »Microsoft.Jet.OLEDB.4.0« und der Name der aktuellen Datenbank, den Sie mit »CurrentDb.Name« ermitteln. Die Parameter trennen Sie mit Semikolon. Im nächsten Schritt nutzen Sie die Methode »OpenSchema« des »Connection«-Objektes, um Informationen über das Datenbankschema anzufordern. Die Methode gibt ein Objekt des Typs »Recordset« zurück, das die jeweiligen Informationen enthält. Der erste der beiden Parameter »adSchemaProviderSpecific« definiert den Typ der Abfrage; in diesem Fall handelt es sich um eine vom Provider angebotene, nicht standardisierte Ab-frage. Mit dem zweiten Parameter »SchemaID:=ô{947bb102-5d43-11d1-b-d-bf--00-c-04fb92675}ô« übergeben Sie die ID der Abfrage. Der Rest ist schnell erläutert. In einer einfachen »Do Until«-Schleife lesen Sie alle Sätze des übergebenen Recordsets aus, wobei jeder Datensatz einem angemeldeten User entspricht. Im Feld »LOGIN_NAME« steht der Anmelde-name des Anwenders, während Sie im Feld »COMPUTER_NAME« den jeweiligen Computernamen finden. Unter anderem wird auch der immer gegenwärtige Anwender »Admin« des eigenen Systems aufgelistet. Diese Einträge enden allerdings jeweils mit einem Null-Character. Diesen müssen Sie mit Hilfe der abgedruckten Funktion »entferneNullChar()« nachträglich entfernen. |
![]() |