ストアドプロシージャPROC_社員の連結フォームの作成

 Access 2000のフォーム作成ウィザードでは、レコードソースとしてテーブルまたはビュー表の選択しかできません。肝心のストアドプロシージャを選択することができないのです。しかしこれは、ストアドプロシージャの中にレコードセットを返さないものがあるので混乱するのを防ぐ目的と、従来のAccessフォームウィザードとの互換性を取るための配慮だと思われます。
 そこで、ストアドプロシージャと連結したフォームを作る場合は、ストアドプロシージャが返すレコードセット構成に一番近いテーブルやビュー表を使って連結フォームを作成し、そのフォームを修正するという手順を踏みます。
 それでは、ストアドプロシージャ「PROC_社員」と連結するフォームを作成してみましょう。ストアドプロシージャ「PROC_社員」のプログラムは、DBSETUP.SQLの中にあります。

    SELECT 社員番号,氏名,住所,電話
               FROM 社員

というレコードセットを返しますが、これは社員テーブルそのものです。そこでフォームウィザードでは、社員テーブルを使って最初のフォームを作ります。

  1. ウィザードを使用してフォームを作成します(図7)。

    図7:ウィザードを使用してフォームを作成する

  2. テーブルの選択に社員テーブルを選びます(図8)。

    図8:社員テーブルを使ってフォームを作成する

  3. フォームのレイアウトは単票形式、スタイルは標準にして、社員フォームを作成します(図9)。

    図9:社員テーブルを元にした連結フォーム

  4. 図9のフォームのデザインを表示し、フォームのレコードソースを変更します。レコードソースをストアドプロシージャPROC_社員に変えましょう(図10)。

    図10:フォームのレコードソースをストアドプロシージャに変更する

  5. レコードセットが、更新可能なスナップショット型であることを確認します。

 以上の操作によって、ストアドプロシージャに連結させたフォームが得られます。フォームを表示してみましょう。図11のように、社員テーブルには4レコードしかないときに、連結フォームから5レコード目を登録することができるのを確認しましょう。

図11:ストアドプロシージャに連結したフォームからレコードの登録を行なう