ACCESS 2000: Aktive User einer Datenbank ermitteln

Hallo Leute,

ist es möglich, bei einer im Netz stehenden Access-DB, per
Knopfdruck heraus zu finden, welche Anwender die Datenbank
gerade geöffnet haben. Hilfreich wäre dabei z. B. der Login-Name o.ä. . Ich habe bisher nur eine Funktion gefunden (GetUser), vom jeweiligen Rechner der die Funktion ausführt ermittelt, welcher User dies ist.

Kompliziert beschrieben, aber vielleicht versteht mich trotzdem jemand :smile:

Vielen Dank schon mal im voraus !!

Gruß

Tom

Hallo Tom,

hier http://www.access-home.de/dlpatch.htm findest Du ein Prog namens LDBVIEW. Wird Dir hoffentlich weiterhelfen.

gruss moritzbock

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Lieber Moritz,

vielen Dank für die schnelle Antwort. Ich hab´s mir auch
gleich runtergeladen. Kann ich auch gut gebrauchen. Meinst
Du es gäbe auch eine DLL / API-Funktion o.ä. die ich direkt
in ACCESS-VBA integrieren könnte ??

Danke

Tom

Tut mir leid Tom, das weiss ich leider nicht :-[

gruss moritzbock

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ein anderer Ansatz

Sub ShowUserRosterMultipleUsers()
 Dim cn As New ADODB.Connection
 Dim rs As New ADODB.Recordset
 
 cn.Provider = "Microsoft.Jet.OLEDB.4.0"
 cn.Open "Data Source=C:\Samples\Whatever.mdb"
 
 ' The user roster is exposed as a provider-specific schema rowset
 ' in the Jet 4 OLE DB provider. You have to use a GUID to
 ' reference the schema, as provider-specific schemas are not
 ' listed in ADO's type library for schema rowsets
 
 Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
 
 'Output the list of all users in the current database.
 
 Debug.Print rs.Fields(0).Name, "", rs.Fields(1).Name, "", rs.Fields(2).Name, rs.Fields(3).Name
 
 Do While Not rs.EOF
 Debug.Print rs.Fields(0), rs.Fields(1), rs.Fields(2), rs.Fields(3)
 rs.MoveNext
 Loop

End Sub

Reinhard

Ein ähnliches Problem hatte ich auch schon mal, Du hast die GetUser Function angesprochen, benutz die doch einfach, ich mache Folgendes. Wenn ein User sich anmeldet führt er die GetUser function aus. Diese wird in eine gelinkte Tabelle Bsp: „activeUsers“ geschrieben.
Damit damit der User beim Verlassen der Datenbank auch wieder gelöscht wird gehst Du wie folgt vor:

beim starten der Anwendung wird eine Variable „username“ mit dem Usernamen gefüllt.
Dann wird der Tabelleneintrag generiert:

public function ins_user()
dim db as database
dim rs as recordset
set db = currentdb()
set rs = db.openrecordset(„activeusers“)
rs.addnew
rs!Username = Username
rs.update
rs.close
db.close
end function

Beim verlassen der Datenbank, z.b uload event des Haupformulars:

public function del_User()
dim db as database
dim rs as recordset
set db = currentdb()
set rs = db.openrecordset(„activeusers“)
do until rs.eof
if rs!Username = username
rs.delete
end if
rs.movenext
loop
end function

Schau Dir die gelinkte Tabelle an und Du hast immer die aktuellen benutzer der Datenbank :smile: