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.506 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. |
sevWizard für VB5/6 Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) 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 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |