Microsoft Access Club >AccessTips >このページ >次頁 <前項  サイト内検索


リストボックスで選択したレコードを修正する : AccessTips135



今回は、リストボックスに表示されたレコードの一覧から任意に選択したレコードを修正フォームに表示する方法をご紹介します。組み立て方は、 リストボックスの複数選択プロパティを標準に変更し、選択したレコードのIDフィールド値をループを用いて変数に代入します。修正フォームを開く際に、Docmdオブジェクト引数にWHERE句を指定します。

サンプルテーブル

以下のようなフィールドを持つサンプルテーブル(T_sample)を作成します。

ID 日付 売り上げ
00001 2005/08/10 ¥154,420
00002 2005/08/11 ¥54,200
00003 2005/08/12 ¥410,100
00004 2005/08/13 ¥310,050
00005 2005/08/14 ¥63,100
00006 2005/08/15 ¥84,100
00007 2005/08/16 ¥114,620

レコードの一覧を表示するフォームの作成

T_sampleテーブルと連結した単票式フォーム(F_samplechange)を作成します。 フォームに表示されたリストボックスから任意のレコードをマウスで選択します。以下のようなオブジェクトを追加します。

  1. リストボックス(lst表示)を作成します。
  2. 修正を実行するコマンドボタン(cmd修正)を作成します。

修正フォームの作成

T_sampleテーブルと連結した表形式フォーム(F_sampleenter)を作成します。

コマンドボタンのクリック時イベントプロシージャの作成

コマンドボタンのクリック時イベントに以下のプロシージャを作成します。プロシージャが実行されると、 リストボックスで選択されているレコードのIDフィールドを値を求めます。求めた値をWHERE条件にF_sampleenterフォーム開きます。

Private Sub cmd検索_Click()

    Dim var条件 As Variant
    Dim var行 As Variant
    
    For Each var行 In Me.lst一覧.ItemsSelected
        var条件 = var条件 & IIf(Not var条件 = "", ",", "") & _
                                        Me.lst一覧.Column(0, var行) ' --- A
    Next
    DoCmd.OpenForm "F_sampleenter", , , "ID IN (" & var条件 & ")" ' --- B

End Sub
解説
  1. 選択したレコードのIDフィールドの値を求めます。
  2. DocmdオブジェクトのOpenFormメソッドの引数にWHERE条件を記述します。

フォームをビューモードで開く

  1. フォームをビューモードで開きます。
  2. 修正するレコードを選択します。

  1. 修正コマンドボタンをクリックします。
  2. 当該レコードが表示された修正フォームが開きます。

関連ページ

2005/08/16

ページの先頭へ 前ページへ戻る

 


リストボックスで選択したレコードを修正する : AccessTips135


 

-Microsoft Access Club-