コピペプログ

VBA、VBS、バッチファイルなどの備忘録と日記です。

【Access】チェックボックス一括チェック

Accessの分割フォームで下段にテーブルが表示されフィルター機能などテーブルで使用できる機能が使えます。 フィルターをかけたテーブルのチェックリストに対して一括でチェックを入れることができないので、VBAで作成しました。 単純なコードで実現できるのでお試しください。

ちなみに今回はチェックボックスがtrueのものをレポート印刷するために作成しました。 印刷したいレコードだけフィルタで表示させコードを登録したボタンを押すという流れです。 ついでに一括でチェックを外すコードも書いておきます。

'----------------------
'一括印刷チェック
'----------------------
Private Sub Btn_check_Click()

    Dim rs As DAO.Recordset

    If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord    'アクティブなフォームの現在のレコードを保存
        Set rs = Me.Recordset.Clone    

    Do Until rs.EOF      '表示されているレコード全てに対してチェックボックスをtrue
        rs.Edit
        rs!印刷チェック = True
        rs.Update
        rs.MoveNext
    Loop
    
    Me.Refresh


End Sub


'----------------------
'印刷チェック解除
'----------------------
Private Sub Btn_clear_Click()
    
    Dim sql As String
        
    sql = "UPDATE 物品購入リスト "
    sql = sql & "SET [印刷チェック] = false;"
    
    DoCmd.SetWarnings False
        
    DoCmd.RunSQL sql
        
    DoCmd.SetWarnings True
    
    Me.Refresh
    
End Sub