![見出し画像](https://assets.st-note.com/production/uploads/images/115096504/rectangle_large_type_2_1211b99dec79ad92b5d8115c42c48f92.png?width=1200)
【ACCESS コントロール】コマンドボタン
コマンドボタンとは
Access フォームのコマンド ボタンを使用して、アクションまたは一連のアクションを開始することができます。 たとえば、別のフォームを開くコマンド ボタンを作成することができます。
メニュー画面に配置
よく使われる方法は
![](https://assets.st-note.com/img/1693618234892-bO5aoZe4tW.png)
システムのメニュー画面です
図のように 社員管理メニューに コマンドボタンが設置され
別のフォームを開くというアクションを設定しています
また CLOSE のコマンドボタンには このシステムを終了するというアクションが設定されています
どちらも クリック時イベントに
![](https://assets.st-note.com/img/1693642776326-jqDuKuxR1q.png)
フォームを開くコマンドボタンクリック時イベント
DoCmd.OpenForm "F_staff"
システムを終了するコマンドボタンクリック時イベント
DoCmd. Quit
(フォームを閉じる場合)
DoCmd. Close
コマンドボタン こんなこともできます
① 入力された値を取得する
② 標題の切り替えと使用の可否
① 入力された値を取得する
上のテキストボックスに 文字を入力して
コマンドボタンをクリックしたら
下のテキストボックスに 上で入力した文字を 表示しています
![](https://assets.st-note.com/img/1693620291746-WoKTbIudAc.png?width=1200)
コマンドボタンのクリック時イベント
Private Sub cmd_exe_Click()
Me.txt_input.SetFocus
Me.txt_output = Me.txt_input
End Sub
Me.txt_input.SetFocus
テキストボックスにフォーカスを移動します
Me.txt_output = Me.txt_input
下のテキストボックスに 上のテキストボックスの値を代入しています
② 標題の切り替えと使用の可否
![](https://assets.st-note.com/img/1693643275227-Gstsn7PWiB.png?width=1200)
パスワードを設定するシーンでは
何文字以上でなければ 登録できないという場合がよくあります
テキストボックスに入力した文字数が8文字以上の場合
コマンドボタンが使用可能となるというものです
8文字未満の場合
![](https://assets.st-note.com/img/1693646459764-bluSmiUZZz.png?width=1200)
テキストボックスの更新後
「8文字以上 入力してください」とメッセージが表示され
コマンドボタンは使用できない状態です
8文字以上入力されている場合
![](https://assets.st-note.com/img/1693646583974-dtbx6VjHuP.png?width=1200)
コマンドボタンのキャプションに 「OK」と表示され
![](https://assets.st-note.com/img/1693646625225-UFNPUSscmj.png?width=1200)
OKコマンドボタンを押すと 「コマンドボタンが押されました」をメッセージが表示されました
つまり 8文字未満で コマンドボタンが使用不可となりキャプションもクリアになります
8文字以上の場合 コマンドボタンにキャプション「OK」を表示し 使用可能となります
VBAコード
フォーム 読み込み時
Private Sub Form_Load()
Me.cmd_exe.Caption = ""
Me.cmd_exe.Enabled = False
Me.txt_input.Value = ""
End Sub
Me.cmd_exe.Caption = ""
コマンドボタンのキャプションを空欄にする
Me.cmd_exe.Enabled = False
コマンドボタンを使用不可にする
Me.txt_input.Value = ""
テキストボックスをクリアにする
テキストボックス 更新後処理
Private Sub txt_input_AfterUpdate()
If Len(Me.txt_input.Text) >= 8 Then
Me.cmd_exe.Caption = "OK"
Me.cmd_exe.Enabled = True
Else
MsgBox "8文字以上 入力してください"
Me.cmd_exe.Caption = ""
Me.cmd_exe.Enabled = False
End If
End Sub
If Len(Me.txt_input.Text) >= 8 Then
入力された値の文字数が 8文字以上か判定し そうならば
Me.cmd_exe.Caption = "OK"
コマンドボタンのキャプションを『OK』にする
Me.cmd_exe.Enabled = True
コマンドボタンを使用可能にする
Else
8文字以上でなければ
MsgBox "8文字以上 入力してください"
メッセージ『8文字以上 入力してください』と表示する
Me.cmd_exe.Caption = ""
Me.cmd_exe.Enabled = False
コマンドボックスのキャプションを空欄にし 使用不可とする
まとめ
コマンドボタンは Access のシステムにおいて
最も使われる便利なコントロールのひとつです
フォームやレポートを開いたり
クエリを実行したり
また 判断をともなう条件分岐などのアクションなど
あらゆる場面で利用することができます
ほかのコントロールと合わせて使用することで
また さらに複雑な処理をおこなうことができます
もっともっと 深掘りしていきたいですね