2013-07-05 209 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。修复编译器在解决其他代码问题之前所抱怨的其他问题。