SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Accessによる検索機能付き掲示板の作り方

フォームとクエリを利用して書き込み・検索機能を持った掲示板を作る

フォームの作成(1/2)

 テーブルができたら、フォームを3つ作成します。一つは発言を書き込むフォーム、もう一つはメインとなる掲示板、そして書き込み検索用フォームです。

書き込み用フォームの作成

 まず初めに、書き込み用フォームを作成します。ここでは、コントロールにテーブルのフィールドデータをセットするのと、入力された内容をレコードに保存するための連結を作成するのがポイントになります。

フォームのプロパティ設定

操作手順
  1. 最初にフォームのプロパティで、[データ]タブのレコードソースにテーブル「メインボード」を指定します。これで、コントロールでの選択や入力をテーブルに保存できるようになります。
  2. 次に、[イベント]タブの[開く時]から[マクロビルダ]を選び、アクション欄で[レコードの移動]を、レコード欄で[新しいレコード]を選びマクロ1を保存します。これで、この「書き込み」フォームを開くたびに、テーブル「メインボード」には新しいレコードが追加されます。
  3. 画面5 アクション欄の[レコードの移動]を、レコード欄の[新しいレコード]を選ぶ
    画面5 アクション欄の[レコードの移動]を、レコード欄の[新しいレコード]を選ぶ
  4. [その他]ページで、ポップアップを[はい]にし、[書式]ページの[レコードセレクタ]と[移動ボタン]、[区切り線]を[いいえ]にします。

所属リストの作成

 次に、テーブル「所属」の内容をリスト表示するコンボボックスを作成します。

 まず、ツールボックスからコンボボックスを選びフォームに配置します。ウィザードが起動するので、[テーブルまたはクエリの値をコンボボックスに表示する]にチェックが付いているのを確認し、ウィザードに従いテーブル「所属」を選び、フィールド所属を選びます。

 そして、並べ替え、列幅は指定せずに[次のフィールドに保存する]をクリックして、リストから[所属]を選びます。これで、テーブル「所属」の内容をリスト表示すると共に、選択された内容をテーブル「メインボード」のフィールド所属に保存します。

画面6 [次のフィールドに保存する]をクリックしてリストから[所属]を選ぶ
画面6 [次のフィールドに保存する]をクリックしてリストから[所属]を選ぶ

情報の種類リストの作成

 同じ方法で、「情報の種類」コンボボックスを作成します。テーブルは[情報の種類]を、フィールドは[情報の種類]を選び、[次のフィールドに保存する]は[情報の種類]を選びます。

 次に、コンボボックスを選択している状態でプロパティウィンドウを開き、[データ]タブの値集合ソース欄のSQL文を見ます。

SELECT [情報の種類].[ID], [情報の種類].[情報の種類] FROM [情報の種類];

 このSQL文に基づいて、コンボボックスはテーブルのフィールドデータをリスト項目に組み込むのですが、「情報の種類」だけを組み込んだはずなのにフィールド「ID」まで選択しています。

 その場合は、プロパティウィンドウの連結列欄の値が「1」になっているので、この値を「2」にして、2列目-「情報の種類」に連結させます。

 また、コンボボックス「所属」についても同じように値集合ソース欄のSQL文と連結列欄の値を調べ、必要なら修正してください。

画面7 連結列欄の値を「1」から「2」に変える
画面7 連結列欄の値を「1」から「2」に変える

氏名・表題・内容の作成

 今度は、氏名・表題・内容の3つの入力用コントロールを作成します。これらは、直接入力してもらうので、テキストボックスを使用します。ただし、このテキストボックスも、入力したらテーブル「メインボード」の各フィールドに格納するようにするため、連結コントロールとして作成します。

操作手順
  1. ツールバーにある[フィールドリスト]ボタンを押すと、テーブル「メインボード」のフィールド名が一覧表示されるので、[氏名]、[表題]と[内容]をフォームにドラッグ&ドロップします。すると、自動的にこのフィールドに連結したテキストボックスが作成されます。
  2. ここまで作成したら、実際にちゃんと入力できるかどうかを試してみましょう。ビューをデザインビューから「フォームビュー」に切り替えます。そして、[所属][情報の種類]をリストから選び、氏名・表題・内容を入力します。入力後、次のレコードに切り替えると入力が確定します。
  3. 入力したらフォームを閉じ、テーブル「メインボード」を開いて、ちゃんとデータが入力されてるのかどうかをチェックします。
完成した書き込みフォーム
完成した書き込みフォーム

レコード操作のボタンの作成

 今度は、フォームにボタンを組み込んで、このボタンでレコードへの保存と新規レコードの追加を行うようにします。

操作手順
  1. フォームにボタンを配置し、ウィザードが起動したら[種類]から[レコードの操作]を、[ボタンの動作]から[新しいレコードの追加]を選びます。表示する文字にアイコン[鉛筆(編集中)]を選び[完了]を押します。また、ボタンの横にラベルを配置し、「書き込む」と表示しておきます。これにより、一件書き込みを入力するとボタンを押した時点で、次の記事を新しいレコードに書き込めるようになります。
  2. 画面8 [新しいレコードの追加]を選ぶ
    画面8 [新しいレコードの追加]を選ぶ
  3. ボタンのプロパティウィンドウを開き、「イベント」ページを開きます。[クリック時]の値欄が「イベントプロシージャ」になっているので、これを削除しマクロビルダを起動します。[アクション]の最初の行に[レコードの移動][新しいレコード]を作成し、次の行に[閉じる][フォーム][メインボード]を作成します。そして、最後の行に[フォームを開く][メインボード]を作成します。これで、[書き込む]ボタンを押すと、テーブル「メインボード」に入力データを保存して新しいレコードを挿入し、フォーム「メインボード」を再表示して、書き込みを反映させることができます。
  4. 画面9 レコードへの保存と新規レコードの追加処理を行う
    画面9 レコードへの保存と新規レコードの追加処理を行う
  5. もう一つボタンを配置します。ウィザードはキャンセルし、プロパティウィンドウで[表題]を「閉じる」に変更し、「イベント」ページで[クリック時]を選んでマクロビルダを起動します。[アクション]に[閉じる]を選び、[フォーム]で[書き込み]を選びます。

次のページ
フォームの作成(2/2)

この記事は参考になりましたか?

特集記事連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/423 2006/06/29 00:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー