2013-07-05 5 views
3

У меня есть выпадающий список всех доступных принтеров:Выпадающий список - значение по умолчанию

Private Sub Form_Load() 
    For Each l_pr In Application.Printers 

     Me.dropdown.RowSourceType = "Value List" 
     Me.dropdown.AddItem l_pr.DeviceName 
    Next 

    Me.dropdown.DefaultValue = Application.Printer.DeviceName 

End Sub 

Я хотел бы иметь принтер по умолчанию, который будет выбран при загрузке формы. Я думал, что вы можете сделать это с помощью DefaultValue (см. Мой код), но ничего не отображается таким образом.

Как я могу это достичь?

ответ

5

Сделайте свой выбор принтера, присвоив выпадающему меню Value вместо DefaultValue.

Я проверил этот код с новой формой в Access 2007 ...

Private Sub Form_Load() 
    Dim l_pr As Printer 
    Me.dropdown.RowSourceType = "Value List" 
    For Each l_pr In Application.Printers 
     Me.dropdown.AddItem l_pr.DeviceName 
    Next 
    'Me.dropdown.DefaultValue = Application.Printer.DeviceName 
    Me.dropdown.Value = Application.Printer.DeviceName 
    Set l_pr = Nothing 
End Sub 

Я переместил RowSourceType заявление перед циклом For ... Вам нужно только запустить это заявление один раз.

Также обратите внимание Dim l_pr As Printer ... объявление переменных рекомендуется в VBA. Включите Option Explicit в раздел Объявления вашего модуля формы, а затем запустите Debug-> Compile из главного меню VB Editor. Исправьте все, что компилятор жалуется, прежде чем устранять другие проблемы с кодом.

Смежные вопросы