Wenn es Dir um Datenbanken geht, habe ich hier was mit ADO für Dich:
Option Explicit
' ACHTUNG:
' Code funktioniert nur, wenn "Microsoft ActiveX Data Objects" unter
' Projekt-Verweise aktiviert ist!
Private Function EntferneNullChar(ByVal ZeichenKette As String) As String
' Ist ein Nullchar enthalten?
If (InStr(1, ZeichenKette, vbNullChar) > 0) Then
' Ja, also den Text davor zurückgeben
ZeichenKette = Left(ZeichenKette, InStr(1, ZeichenKette, vbNullChar) - 1)
End If
' Rückgabe setzen
EntferneNullChar = ZeichenKette
End Function
Public Sub AngemeldeteBenutzer(DieListe As Control, DatenbankOrt As String)
' Speicher reservieren
Dim dbConnect As ADODB.Connection
Dim rsAbfrage As ADODB.Recordset
Dim strConnect As String
Dim strLogin As String
Dim strComputer As String
Dim strAusgabe As String
Dim rsCount As Long
' Verbindung zum Datenbank-Objekt aufbauen
Set dbConnect = New ADODB.Connection
' Verbindungstext zur Datenbank erstellen
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatenbankOrt
' Datenbank öffnen
dbConnect.Open strConnect
' Schema öffnen
Set rsAbfrage = dbConnect.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
' An das Ende der Abfrage gehen
rsAbfrage.MoveLast
' An den Anfang der Abfrage gehen
rsAbfrage.MoveFirst
' Alle Datensätze durchlaufen
For rsCount = 1 To rsAbfrage.RecordCount
' Den UserNamen kopieren
strLogin = EntferneNullChar(rsAbfrage.Fields("Login_Name").Value)
' Den ComputerNamen kopieren
strComputer = EntferneNullChar(rsAbfrage.Fields("Computer_Name").Value)
' Ausgabe erstellen
strAusgabe = "Benutzer " & strLogin & " vom Computer " & strComputer
' Ausgabe in die Liste einfügen
Select Case LCase(TypeName(DieListe))
Case "combobox", "listbox:"
DieListe.AddItem strAusgabe
Case Else
Debug.Print strAusgabe
End Select
' Nächster Datensatz
rsAbfrage.MoveNext
Next rsCount
' Abfrage schließen
rsAbfrage.Close
' Verbindung trennen
dbConnect.Close
End Sub