Vor kurzem hatten wir Ihnen gezeigt, wie man unter Access 2002 oder höher alle verfügbaren Drucker ermitteln und in alphabetischer Reihenfolge sortiert ermittelt und anzeigen kann: Da es aber durchaus noch viele Entwickler gibt, die noch immer unter Access 97 / 2000 programmieren, gibt es heute den o.g. Tipp für die Versionen Access 97 und Access 2000. Nachfolgende Funktion GetPrinterList ermittelt alle verfügbaren Drucker und stellt diese in alphabetischer Reihenfolge sortiert als String für die Zuweisung in einem Listen- oder Kombinationsfels zusammen. Die Zuweisung erfolgt hierbei über die RowSource-Eigenschaft des Controls. ' benötigte API-Deklaration Private Declare Function GetProfileString Lib "kernel32" _ Alias "GetProfileStringA" ( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long) As Long ' Liste aller verügbaren Drucker als Werte-Liste ' für ein List-Control ermitteln und zurückgeben Public Function GetPrinterList() As String Dim sTemp As String Dim nLen As Long Dim i As Long Dim sItem() As String Dim nCount As Long Dim nPos As Long Dim sRowSource As String ' Einträge aus Windows.ini auslesen sTemp = Space(8192) nLen = GetProfileString("PrinterPorts", vbNullString, "", sTemp, Len(sTemp)) If nLen > 0 Then sTemp = Trim$(Left$(sTemp, nLen)) If Right$(sTemp, 1) = Chr$(0) Then sTemp = Left$(sTemp, Len(sTemp) - 1) ' jetzt den String anhand vbNullChar in Array zum späteren Sortieren einlesen Do While Len(sTemp) > 0 nCount = nCount + 1 ReDim Preserve sItem(nCount - 1) nPos = InStr(sTemp, Chr$(0)) If nPos > 0 Then sItem(nCount - 1) = Left$(sTemp, nPos - 1) sTemp = Mid$(sTemp, nPos + 1) Else sItem(nCount - 1) = sTemp sTemp = "" End If Loop ' Array sortieren If nCount > 0 Then QuickSort sItem() ' String für RowSource zusammenstellen For i = 0 To nCount - 1 If Len(sRowSource) > 0 Then sRowSource = sRowSource & ";" sRowSource = sRowSource & sItem(i) Next i End If End If GetPrinterList = sRowSource End Function Für die Sortierung des Arrays wird auch hier wieder auf den QuickSort-Algorithmus zurückgegriffen: Beispiel: Private Sub Form_Load() With cmbPrinters .RowSourceType = "Value List" .RowSource = GetPrinterList() End With End Sub Dieser Tipp wurde bereits 14.509 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP! Unser Nr. 1 Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |