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 (私のコードを参照) でそれができると思っていましたが、この方法では何も表示されません。

どうすればこれを達成できますか?

4

1 に答える 1

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...そのステートメントを実行する必要があるのは 1 回だけです。

またDim l_pr As Printer、VBA では変数を宣言することをお勧めします。Option Explicitフォーム モジュールの宣言セクションに含め、VB エディタのメイン メニューから [デバッグ] - [コンパイル] を実行します他のコードの問題をトラブルシューティングする前に、コンパイラが不平を言う他のすべてを修正します。

于 2013-07-05T13:01:39.127 に答える