おっしゃるような事をするには、クエリーが必要になると思います。
テーブル構造は私がNo2で示したようになっているとして、AさんとBさんの履歴を出すクエリーは、次のようになります。
SELECT * FROM テーブルA WHERE 名前 IN ('Aさん','Bさん') ORDER BY [名前], [日付], [来店順位];
「'Aさん','Bさん'」の部分を来客によって変えるのですが、いちいちクエリーを編集するのは手間ですよね。
だからVBAを使うのが良いと思います。
まず、フォームを作ります。
フォーム・ウイザードで、基になるテーブルにテーブルAを指定して、表形式にします。
出来たフォームにテキストボックスとコマンドボタンを貼り付けます。
名前はテキスト1、コマンド1としておきます。
フォームの編集画面で「表示」ー「コード」を選んで、以下を貼り付けます。
Private Sub コマンド1_Click()
Dim tmp As String
tmp = テキスト1.Value
tmp = "'" & Replace(tmp, ",", "','") & "'"
Me.RecordSource = "SELECT * FROM テーブルA WHERE 名前 In (" & tmp & ") ORDER BY [名前], [日付], [来店順位];" '←ここは一行で
End Sub
編集結果を保存して完成です。利用方法は以下になります。
フォームを開いて、テキストボックスに「Bさん,Cさん」という具合に表示したい人の名前を入力してコマンドボタンを押せば、目的の表示がでます。
この時、人の名前の間は、,(半角のコンマ)で区切って、スペースなどは入力しないようにしてください。
なおテキストボックスには「'Aさん','Bさん'」という具合に、名前を'で囲んで入力する方法でも良いのですが、間違いやすいのでVBAの方で処理するようにしました。
お礼
参考書に、問い合わせ応答クエリと言う項目がありましたので、コレを見ながら何とかやってみます。 >接続できなくなりますので との事ですので、一旦締め切る事にします。 ご解答大変ありがとう御座いました!!