1

次のコードを使用して、フィールドが空の場合にチェックボックスを非表示にしようとしています:

If rstPIANO.RecordCount <= 0 Then
    MsgBox "No PIANO Data exists for this date"
    chkPIANO.Enabled = Not (chkPIANO.Enabled)
    chkPIANO.Visible = False
    Else
        chkPIANO.Visible = True
    End If

これを試してみると、msgbox が機能し、実行時エラー '91' が表示されます: オブジェクト変数またはブロック変数が設定されていませんか? コードの前半でチェックボックスを初期化します

Dim chkPIANO As Checkbox

この問題を解決するための考えはありますか?

4

1 に答える 1

0

後 ...

Dim chkPIANO As Checkbox

あなたはSet何かにそれをしなければなりません。チェックボックスを含むフォームでコードが実行されている場合...

Set chkPIANO = Me.CheckBoxName

ただし、チェック ボックス コントロールの名前がchkPIANOの場合は、同じ名前の変数を宣言する必要はありません。あなたはそれを次のように参照できるはずです...

Me.chkPIANO

コードがフォームのモジュールではなく標準モジュールにある場合...

Set chkPIANO = Forms!YourFormName!CheckBoxName

基本的な方法として、モジュールOption Explicitのセクションに追加しDeclarations、VB エディタのメイン メニューから [デバッグ] - [コンパイル] を実行します。コンパイラが不平を言うものをすべて修正します。Option Explicitすべてのコード モジュールで使用します。

于 2013-07-19T15:18:38.503 に答える