![]() |
||
![]() |
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. Public Sub angemeldeteNutzer() Dim connect As ADODB. connection Dim rstSchema As ADODB. Recordset Dim strConnect As String Dim strLogin As String Dim strComputer As String Dim strAusgabe As String On Error GoTo err_angemeldeteNutzer strConnect = äProvider=- Microsoft.Jet.OLEDB.4.0;ô & _ äData Source=ô & CurrentDb.- Name Set connect = New ADODB. connection connect.Open strConnect Set rstSchema = connect.-- OpenSchema(adSchemaProviderSpecific, SchemaID:=ô{947 bb102-5d43-11d1-bdbf -00c04fb92675}ô) Do Until rstSchema.EOF strLogin = entferneNullChar(rstSchema!LOGIN_NAME) strComputer = entferneNullChar(rstSchema!COMPUTER_NAME) strAusgabe = äBenutzer ä & strLogin & ä vom Computer ä & strComputer MsgBox strAusgabe rstSchema.MoveNext Loop rstSchema.Close connect.Close exit_angemeldeteNutzer: Exit Sub err_angemeldeteNutzer: MsgBox Err.Description Resume exit_angemeldeteNutzer End Sub Public Function entferneNullChar(Zeichenkette As String) As String If InStr(Zeichenkette, vbNullChar) > 0 Then Zeichenkette = Left(Zeichenkette, InStr(Zeichenkette,- vbNullChar) - 1) End If entferneNullChar = Zeichenkette End Function 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. |
![]() |