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.483 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. |
Neu! sevDTA 3.0 Pro SEPA mit Kontonummernprüfung Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. 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. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |