Показать принтеры с определенным именем

У меня есть некоторый код, который перечисляет все активные принтеры (но делает это в msgboxes, а не в списке). У меня нет проблем с этой функциональностью. Вот код ниже:

    If Printers.Count > 0 Then
    strMsg = "Printers installed: " & Printers.Count & vbCrLf & vbCrLf
    For Each prtLoop In Application.Printers
        With prtLoop
           MsgBox .DeviceName                
      End With
    Next prtLoop
    Else
    MsgBox "No printers are installed."
    End If

Хотя он делает то, что мне, по сути, нужно, я бы хотел, чтобы он появлялся только в том случае, если принтер соответствует части имени принтера, установленной в коде. Например, если у меня есть 3 принтера:

Printer ABC 1
Printer ZZ5 2 (copy)
Printer 123

Я хочу, чтобы после заявления

    For Each prtLoop In Application.Printers

часть кода выше, которая говорит, что если имя устройства *ABC, то оно будет всплывать только с "Printer ABC 1" вместо всех 3.

Я надеюсь это имеет смысл. Заранее спасибо за помощь. -Владимир

1 ответ

Решение

Может быть, это то, что вы хотите сделать?
If Printers.Count > 0 Then strMsg = "Printers installed: " & Printers.Count & vbCrLf & vbCrLf For Each prtLoop In Application.Printers With prtLoop If InStr(DeviceName, "ABC") Then MsgBox .DeviceName
End If
End With Next prtLoop Else MsgBox "No printers are installed." End If

edit: Access не понравился оператор If then, потому что он был одной строкой, возникла ошибка с ошибкой "End If with Block If", я переместил MsgBox .DeviceName в его собственную строку, и он работает.

Другие вопросы по тегам