Tìm thủ thuật nhanh hơn với chức năng tìm trong Blog

1/2/10

Hiển thị user và computer name log in vào chương trình

Hỏi: Nếu mình muốn biết được hiện máy nào (theo tên máy) đang sử dụng chương trinh Access của mình hoặc số lượng người hiện đang sử dụng chương trình của mình thì có làm được không?

Đáp:

1) Để hiển thị user và computer name log in vào chương trình bạn phải dùng ADO recordset (không dùng DAO) do vậy bạn nhớ tham chiếu đến thư viện ADO 2.x

2) Dùng 1 loại ADO recordset đặc biệt , có tên là Schema Information để lấy thông tin user và computer name log in đang sử dụng chương trình.

3) Cách làm như sau :
- Bạn tạo 1 Form (F_TrackUsers) có 1 listbox và 2 command button.
+ Listbox tên : lboConnections
Đây là unbound Listbox, lưu ý : Row Source Type : value list.
+ 1 command button tên : CmdRefresh
+ 1 command button tên : CmdClose

- Ở cửa sổ viết code, nhập các đoạn code sau :

Private Sub cmdClose_Click()
DoCmd.Close
End Sub

Private Sub cmdRefresh_Click()
ListConnections
End Sub

Private Sub Form_Load()
ListConnections
End Sub

Private Sub ListConnections()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strComputerName As String

Set cnn = CurrentProject.Connection
Set rst = cnn.OpenSchema(adSchemaProviderSpecific, , _
"{947bb102-5d43-11d1-bdbf-00c04fb92675}")
lboConnections.RowSource = vbNullString
lboConnections.AddItem "Computer Name;Login Name"

Do While Not rst.EOF
If rst("Connected") Then
strComputerName = rst("Computer_Name")
lboConnections.AddItem Left(strComputerName, _
InStr(strComputerName, vbNullChar) - 1) & ";" & rst("Login_Name")
End If
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Set cnn = Nothing
End Sub

4) Nguyên lý : Khi bạn mở form F_TrackUsers, Sub ListConnections() sử dụng ADO record đăc biệt đã nói ở trên để lấy thông tin và hiển thị trong listbox lboConnections.

tác giả: hungtano
____________________________________________________________________________________
Thảo luận thêm: http://thuthuataccess.com/forum

1 nhận xét:

  1. Nặc danh15:06 23/5/11

    Nó báo lỗi ở mục Form_Load(), bạn ơi. Nó báo ngay mục listconnections. bạn xem lại dùm mình
    mình với bạn ơi. Mình cảm ơn !

    Trả lờiXóa

» Hãy để lại tên, email của bạn khi bạn post comment, để mình có thể dễ dàng trả lời comment của bạn khi cần.
» Có thể sử dụng các thẻ < b>,< i>,< a>. Và các icon thông dụng trên YM