2013-07-05 263 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 

我的For循環之前移動RowSourceType聲明...你只需要運行一次的發言。

另請注意Dim l_pr As Printer ...聲明變量是VBA中的推薦做法。在表單模塊的Declarations部分包含Option Explicit,然後從VB編輯器的主菜單中運行Debug-> Compile。修復編譯器在解決其他代碼問題之前所抱怨的其他問題。