14. april 2003 - 11:56Der er
3 kommentarer og 1 løsning
Who's on
Jeg kunne godt tænke mig at vide hvem der benytter en database der kører på et netværk. Jeg har fisket et langhåret script på nettet der fortæller hvilken arbejdsstation der er logget på database / benytter tabbelen...
Nedenstående funktion giver dig navnet på de brugere, som er logget på (Den viser også din egen maskine, da du opretter en connection til databasen)
Public Function CountUsers(DatabaseSti As String) As Byte Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim intUser As Integer Dim fld As ADODB.Field
Set cnn = New ADODB.Connection cnn.Provider = "Microsoft.Jet.OLEDB.4.0;Data Source=" & DatabaseSti & ";User ID=Admin;Password=;" cnn.Open
Set rst = cnn.OpenSchema(adSchemaProviderSpecific, , adhcUsers)
With rst Do Until .EOF intUser = intUser + 1 Debug.Print "User # " & intUser For Each fld In .Fields If fld.Name = "COMPUTER_NAME" Or fld.Name = "LOGIN_NAME" Then Debug.Print " " & fld.Name & "=" & fld.Value End If Next .MoveNext Loop End With CountUsers = intUser rst.Close Set rst = Nothing cnn.Close Set cnn = Nothing Exit Function Err_Handler: MsgBox Err.Description, vbExclamation, "Databasen er låst eksklusivt!" End Function
Fra debug-vinduet kan den kaldes således: ?CountUsers("C:\Documents and Settings\DinDatabase.mdb")
Der kunne sagtens laves et smartere interface til funktionen i stedet for at den skal aflæses i debug-vinduet, men det har jeg ikke fået lavet endnu.
Koden kræver reference "Microsoft ADO ext. 2.x for DLL"
Thomas -> Jeg kan ikke rigtigt få den til at virke. Fungerer den sådan at den kan se hvem der låser linkede tabeller i en database, eller kun hvem der er på selve databasen?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.