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.485 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
||||||||||||||||
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. |