こんにちは、なかぜんです。
「一覧表示できる連続フォームは便利だけど、個別に編集や削除できたらもっと使いやすいのに…」
こんなお悩み、Accessユーザーさんからよく聞きます。そこで今回は、「編集・削除ボタン付きの連続フォーム」を初心者でも簡単に作れる方法を、やさしく解説します。
このフォームがあれば、業務での確認や更新作業がグッと効率的になりますよ!
連続フォームとは?
まずは基本から確認しましょう。
連続フォームの特徴
連続フォームは、テーブルやクエリのデータを複数行で一覧表示できるフォームです。Excelのように行ごとにデータが並び、スクロールで確認できます。
なぜ編集・削除ボタンが必要?
データを一覧で見るだけではなく、「この行だけ直したい」「このデータは消したい」と思う場面は多いですよね。そんなときにボタンがあると直感的で便利です。
作成の手順
1. テーブルとクエリの準備
まずはデータの元となるテーブルを準備します。今回は「T_顧客」という名前で、以下のようなフィールド構成とします:
- ID(オートナンバー・主キー)
- 顧客名(短いテキスト)
- 電話番号(短いテキスト)
このテーブルを基に、フォームのレコードソースとなるクエリ「Q_顧客一覧」を作っておくと良いでしょう。
2. 連続フォームの作成
フォームデザインビューで新規フォームを作成し、下記の設定を行います:
- フォームの種類:連続フォーム
- レコードソース:「Q_顧客一覧」
顧客名・電話番号のテキストボックスに加えて、下記のようにボタンを追加します:
- 編集ボタン(名前:btnEdit)
- 削除ボタン(名前:btnDelete)
3. ボタンにVBAコードを設定
それぞれのボタンに次のようなVBAコードを設定します。
編集ボタン(編集フォームを開く)
Private Sub btnEdit_Click()
DoCmd.OpenForm "F_顧客編集", , , "ID=" & Me.ID
End Sub
解説: 編集用の単票フォーム「F_顧客編集」を開き、クリックした行のIDだけを条件に表示します。
削除ボタン(レコード削除)
Private Sub btnDelete_Click()
If MsgBox("このデータを削除しますか?", vbYesNo + vbQuestion, "確認") = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
End If
End Sub
解説: メッセージボックスで確認を出し、削除実行。SetWarningsで警告をオフにしています。
よくあるミスと注意点
- フォームの種類が単票のまま:必ず「連続フォーム」に変更してください。
- IDの指定がないと編集できない:編集フォーム側のレコードソースにIDの抽出条件を設定する必要があります。
- 削除時にエラーが出る:削除ボタンで参照制約違反が出る場合、テーブルのリレーションシップを確認しましょう。
応用ポイント(中級者向け)
編集フォームに連携項目を渡す
複数のフィルター条件をVBAで渡すことで、より絞り込んだフォーム表示が可能になります。
ログ機能の追加
削除時に「削除ログテーブル」に記録を残すことで、誤削除のリスクを軽減できます。
まとめ:便利で使いやすいフォームを作ろう!
今回は、Accessの連続フォームに「編集」「削除」ボタンを追加する方法をご紹介しました。
- 連続フォームは一覧性が高く、現場で活躍
- VBAを使えば機能的な操作も簡単に実現可能
- 削除の前に確認メッセージを入れることで安全性アップ
これを機に、自分だけの使いやすい業務フォームを作ってみませんか?
それでは、なかぜんでした。
