Accessテクニックのホームへ戻る

■ フォームのレコードセレクタをクリックしたとき詳細を表示する (2000,2002,2003,2007)

 

フォームのレコードセレクタをクリックしてポップアップウィンドに詳細を表示する

 

得意先フォームにレコードの詳細を表示する機能を付加します。フォームに得意先レコードが表示されたら、レコードセレクタをクリックします。ポップアップウィンドが開いて、得意先レコードの詳細が表示されます。

 

 

1. 新規データベース作成

Accessを起動したら、ツールバーから新規作成のアイコンをクリックして、作業フォルダworkW110.mdbを作成します。

 

2. テーブル、クエリをインポート

Windowsのエクスプローラから、110.mdb(このページの最後からダウンロードできます)をダブルクリックして開きます。データベースウィンドウのオブジェクトから[テーブル]をクリックしたら、得意先テーブル(tblCustomers)をドラッグしてW110.mdbのデータベースウィンドウにドロップします。同様の手順で、得意先クエリ(qryCustomers)をドラッグ&ドロップします。テーブル、クエリをインポートしたら、110.mdbを閉じます。

 

3. ポップアップフォーム作成

データベースウィンドウのオブジェクトから[フォーム]を選択したら、[新規作成]ボタンをクリックします。「新しいフォーム」のダイアログが表示されたらリストボックスから[オートフォーム:単票形式]を選択します。基になるテーブルまたはクエリの選択から[tblCustomers]を選択します。[OK]ボタンをクリックしてダイアログを閉じます。

 

フォームが自動生成されたら、ツールバーからデザインビューのアイコン をクリックします。デザインビューに切り替わったら、フォームの未使用領域をダブルクリックしてプロパティウィンドウを表示します。フォームのプロパティウィンドウからポップアップ[はい]を設定します。ツールバーから上書き保存のアイコンをクリックして「fdlgCustomerDetails」の名称で保存します。

 

ポップアップフォームを作成したら「fdlgCustomerDetails」の名称で保存する

 

4. メインフォーム作成

データベースウィンドウから[新規作成]ボタンをクリックします。「新しいフォーム」のダイアログが表示されたらリストボックスから[オートフォーム:表形式]を選択します。基になるテーブルまたはクエリの選択から[qryCustomers]を選択します。[OK]ボタンをクリックしてダイアログを閉じます。フォームが自動生成されたら、ツールバーからデザインビューのアイコンをクリックします。

 

5. フォームのOnClickイベント登録

ツールバーからコードのアイコンをクリックしてVBE(Visual Basic Editor)を表示します。コードビューが表示されたら、オブジェクトのドロップダウンリストから[Form]を選択します。プロシージャのドロップダウンリストからは、[Click]を選択します。フォームのOnClickイベントが生成されたら、次のコードを追加します。

 

Private Sub Form_Click()

  Dim strCriteria As String

 

  strCriteria = BuildCriteria(Field:="CustomerID", _

    FieldType:=dbLong, _

    Expression:=[CustomerID])

   

  DoCmd.OpenForm FormName:="fdlgCustomerDetails", _

    View:=acNormal, _

    WhereCondition:=strCriteria, _

    DataMode:=acFormReadOnly

End Sub

 

 

6. フォームを開く

VBEのツールバーから表示(Access)のアイコンをクリックして、Accessのウィンドウに切り替えます。Accessのツールバーからフォームビューのアイコンをクリックしてフォームを開きます。フォームが表示されたら、得意先ID2のレコードセレクタをクリックします。ポップアップウィンドウが表示されて、得意先ID2の詳細が表示されます。

 

メインフォームからレコードセレクタをクリックしてポップアップウィンドウに詳細を表示する

 

●解説

メインフォームからレコードセレクタをクリックしたときポップアップウィンドウを表示するには、フォームにクリック時/OnClickイベントを登録します。このイベントでは、DoCmdオブジェクトのOpenFormメソッドでポップアップフォームを開きます。

 

書式

 

OpenForm(FormName, View, FilterName, WhereCondition, DataMode, WindowMode, OpenArgs)

 

引数FormNameには、ポップアップフォームの名前(fdlfCustomerDetails)を指定します。引数Viewには、acNormal(フォームビューで表示)を指定します。引数WhereConditionには、SQLWHERE句を指定します。ここでは、メインフォームから選択した得意先を抽出するために、CustomerID=999のようなWHERE句を指定します。なお、WHERE句はBuildCriteria()関数を使用して生成します。

 

BuildCriteria("CustomerID", dbLong, 999) CustomerID=999

 

引数DataModeには、acFormReadOnly(レコードの参照のみ可能)を設定します。その他の引数は省略します。

 

Private Sub Form_Click()

  Dim strCriteria As String

 

  strCriteria = BuildCriteria(Field:="CustomerID", _

    FieldType:=dbLong, _

    Expression:=[CustomerID]) ‘ SQLWHERE句生成

   

  DoCmd.OpenForm FormName:="fdlgCustomerDetails", _

    View:=acNormal, _

    WhereCondition:=strCriteria, _

    DataMode:=acFormReadOnly ‘ ポップアップフォームを開く

End Sub

 

ダウンロード (110.lzh)