• ベストアンサー

アクセス2003サブフォームで選択したデータをメインフォームで表示したいのです。

得意先のデータベースを作っています。 メインで詳細データを入力し、 会社名の一部で検索できるようにしてあります。 その検索の結果をサブフォームに データの一部を表示し、 複数ある場合はサブフォームで選択したデータを メインフォームに反映させたいと思っています。 アクセス初心者の私でもできる方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

> 選択したデータをメインフォームに反映させたい そういうことでしたら、検索結果の表示には、サブフォームではなくリストボックスを 使われてはいかがでしょうか。 *複数フィールドのデータ表示はリストボックスでも可能です。  但し、データシート型のサブフォームと違い、Accessの標準機能ではマウス  ドラッグによるフィールドの表示幅の変更はできないため、データの詳細確認は  メインフォームで行うことになります。 テーブルやフォームの構成がわからないので、とりあえずポイントだけ説明すると・・・ (既に、検索結果をサブフォームに表示させる方法をご存知の状況下ですので、  冗長すぎる説明になってしますかもしれませんが(汗)) <リストボックスの設定> ◎プロパティシートの『書式』タブ内:  ・列数:    リストボックスに表示させるフィールド数を入力    (但し、主キーフィールドを非表示にする場合は表示フィールド数+1)  ・列幅:    必要に応じて設定    (特に設定しない場合は「リストボックスの幅=1フィールドの幅」になり、     各フィールドのデータ確認には、リストボックス内の横スクロールバーを     使用することになります)  ※上記の設定により、複数フィールドが表示されるようになります。    (下記の「値集合ソース」の設定は必須) ◎プロパティシートの『データ』タブ内:  ・コントロールソース:    今回はレコードの指定に使用するので、設定は無用  ・値集合ソース:    既定で入力されている「テーブル/クエリ」のままでOK  ・値集合ソース:    サブフォームで現在使用しているクエリ(又はSQL文)を使用    (但し、メインフォームで表示することになるレコード1件を特定するための     フィールド(主キーなど)が含まれていない場合は、追加する必要あり)  ・連結列:    上記の「メインフォームで表示するレコード1件を特定するためのフィールド」    が、クエリの何番目のフィールドに当たるかを記録します。    (これにより、リストボックスに実際に入力される値が決定されます) ◎プロパティシートの『イベント』タブ内:  ・更新後処理:    リストボックスの値の変更に合わせて、メインメニューの表示を更新する    コードを記述します。    1)プロパティシートの上記行にカーソルを移動    2)右端に表示される「...」(ビルダ)ボタンをクリック    3)『ビルダの選択』ダイアログで「コード ビルダ」を選択して『OK』をクリック    4)VBE画面が表示されます。     「Private Sub ○○_Click()」「End Sub」(「○○」はリストボックス名)の     2行が追記されているはずなので、その間の行に以下のコードを追記:     Me.Requery    5)VBE画面を閉じる     プロパティシートに「[イベント プロシージャ]」と表示されていることを確認    6)フォームを保存して閉じる <メインフォームの設定> ◎プロパティシートの『データ』タブ内:  ・レコードソース:    上記リストボックスを検索条件(Where条件句)とするクエリを新規作成し、    それを指定 ・・・以上です。 なお、検索条件の更新をサブフォームに反映するVBA(又はマクロ)を既に組まれて いると思いますが、そこはリストボックスの更新(再クエリ(Requery)でよいはず)に 変更してください。

naocccc
質問者

お礼

ご丁寧にありがとうございます。 なんだか私でもがんばればできる気になりました。 毎日アクセスを使っているわけではないので、 いまひとつ進化ができずにいたのですが、 こんな私でもみなさんのおかげで成長できそうです。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

フィールド数が多いテーブルの一部のフィールドだけ帳票フォームで表示させ そこで選んだレコードを全フィールドを表示した単票フォームで表示するというようなときには メイン・サブではなく別フォームでやるのが定石ですね

naocccc
質問者

お礼

早速の回答ありがとうございました。 そうなんですね。 別フォームの作成ですか・・・ 考えてみます。ありがとうございました。

すると、全ての回答が全文表示されます。