• ベストアンサー

アクセスの住所録

アクセスで業務用に住所録を作っています。すごい、初心者の質問かもしれませんが、どなたかお願いします。 小さなペンションなのですが、顧客名簿でお客さんの名前を入れて、その人が以前も来た事があれば、それをわかるようにしたいと思っているのですが、どうすればいいのでしょうか?参考文献、参考ウェブでもいいので教えていただけるとありがたいです。よろしくお願いします。

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

  • ベストアンサー
noname#166310
noname#166310
回答No.4

補足を見ました。 こういうことではいかがでしょうか? まず、顧客がコード管理されていない場合は、顧客コードフィールドを追加し、顧客マスターとします。 メインフォームの元となるテーブル(利用履歴の親)を作成します。フィールドには、利用ID、顧客コード、顧客名、TEL、家族構成、住所、・・・。 顧客名顧客マスターのコードとリレーションを組んで下さい。 それからサブフォームの元となるテーブルを作成します。 フィールドには、利用ID、利用開始年月日、利用終了年月日、金額など。 これを利用IDをもとにリンクさせます。 下のサイトは結構わかりやすかったので何かの参考になれば・・。 それでは、がんばってください!

参考URL:
http://www.accessclub.jp/
ami10
質問者

お礼

わかりやすく答えてくださってありがとうございました。 教えてくださったサイトをみてみます。できるところまで頑張ります!!

その他の回答 (3)

  • tutty2
  • ベストアンサー率53% (7/13)
回答No.3

前提条件が抜けていたでしょうか? 私がよくやるのは、メインフォームにコンボボックスを設置し、そこで選んだもので抽出しサブフォームに表示させています。 その場合、メインフォームにもサブフォームと同じクエリーをレコードソースに設定しています。 そして、コンボボックスのコントロールソースはそのクエリーの中の抽出対象とする項目を設定しています。 上記を踏まえて次のようにします。 メインフォームの中に白色の四角いサブフォームができたと思います。 そこを一回クリックすると四隅と4辺の中央に小さな四角が出ますね。その状態で右クリックのプロパティかプロパティボタンをクリックするとプロパティの画面が出るのはわかりますよね。 その、プロパティにリンク親フィールドがあるのでそこをクリックすると、右側に点点点の付いた四角いボタンが現れるので、それをクリックします。 そうすると、リンクフィールドビルダが起動します。 そこで親フィールドの右側にある三角ボタンをクリックし、コンボボックスのコントロールソースに設定した項目を選択します。 子フィールドも同じ項目を設定します。 この場合、前回の回答で作成したクエリーで抽出条件を設定した項目になるはずです。 これでうまくいくでしょうか? なお、例えばクエリーを顧客基本情報と利用状況のテーブルをリレーションさせていれば、新規顧客の基本情報登録は別フォームで行いますが、利用状況データはこのフォームで前回の利用状況を確認しながら入力できるものになるはずです。 クエリーの作り方はいろいろ工夫してください。 アクセスは、クエリーがうまく動けば8割できたみたいなものです。

ami10
質問者

お礼

貴重なアドバイスをありがとうございました。とても細かく説明してくださっているので今回はできるような気がします!もう一度やってみます。ありがとうございました。

  • tutty2
  • ベストアンサー率53% (7/13)
回答No.2

サブフォームを使えばできます。 1.まず、メインフォームになるフォームを作ります。 そこには、検索するためのキーワードを入れるテキストボックスかコンボボックスを配置します。 2.次に、サブフォームに使うクエリーを作ります。 その時に、クエリーの抽出条件にメインフォームの検索用コントロール名を指定するようにします。 [Forms]![フォーム名]![コントロール名] 3.続いてサブフォームに使うフォームを2.で作成したクエリーをレコードソースにして作ります。内容は、お客さんの情報を並べた一覧表形式がいいでしょう。 何回も来た人ならば来た日順に一覧できる方が良いでしょうから。 4.そして、メインフォームのデザインを開いた状態で1で作成したサブフォームをデータベースウィンドからメインフォームにドラッグすれば、メインフォーム内にサブフォームが作成されます。 4.サブフォームのプロパティのリンク親フィールドをクリックし右側に現れるボタンをクリックしリンクフィールドビルダを起動して、親リンクと子リンクを設定します。 こんな感じでできるはずです。

ami10
質問者

お礼

かなりの初心者なのでとても助かります!本当にありがとうございます。 本を使って用語を調べながらやってみたのですが、最後のリンクフィールドビルダを起動して、親リンクと子リンクを設定するというのがよくわからないのです…。ビルダというものを起動してみたのですがどこをいじれば設定できるのでしょうか?おしえていただけませんか? 今までフォームを使用して宿泊者名簿のテーブルにデータを上積みしていくだけで、検索が必要な時に毎回クエリを使って検索していました。でも、この方法を使えばフォームにお客様の名前を入力した時に瞬時に過去に泊まった時のデータが出てくると同時に、宿泊者名簿のテーブルにデータを上積みすることが可能になりますでしょうか? なんだかまとまりがなくてごめんなさい…。また教えていただけたらうれしいです。

noname#166310
noname#166310
回答No.1

フォーム・サブフォームとかわかるでしょうか? 売上伝票のようなものを思い浮かべてください。 1つの会社に対して、いくつも商品を入力できますよね? (画面上部に会社情報、下部に売上商品の入力が何行かできる状態) あの仕組みで行えばいいと思いますよ。 メインフォームには顧客情報、サブフォームには利用履歴という具合です。 今、作っている名簿がどのようなものか教えてもらえるとより具体的に説明できますので、もう少し詳しく書いてください。

ami10
質問者

お礼

ありがとうございました。サブフォームというものは使ったことがなかったのでなんとなくイメージがわきました。 今まではアクセスを使ってはいたのですがただ宿泊者名簿のテーブルにフォームを使用してデータを上積みしていくだけでした。時々、クエリを使用してデータの検索をしたりはしています。でも、もっといろいろなものと関連付けながら使用していこうと考えています。 今作ろうとしているのは、宿泊当日分の予約台帳と宿泊者名簿を関連付けたものです。予約は電話で受けて名前や住所等を台帳に鉛筆で記入していくのですが、その後に同じ情報をコンピューターに打ち込んでいます。このやり方だと何日も連泊される方の同じ情報(住所など)を何度も繰り返しうちこんでいたり、せっかくデータベースがあるのに何度も来てくださっている「お得意様」に気がつかなかったり、せっかくの「アクセス」を生かしきれていないのです。そこで、まず手始めに、宿泊者名を最初に打ち込む時にその人のデータがデータベースに既に存在しているか、しているならそれを使うことはできないのか、そして、それを一回一回検索しながら行うのではなくて名前をデータ-ベースに上積みする時にすべて同時にできないかなと思ったのです。でも、まだ初心者なので本をみながらやってもわからないことが多く、質問することにしました。 この問題をクリアーしたら、部屋ごとに作られている予約台帳のデータを宿泊者名簿に上積みしていく方法を考えようとおもっています。予約台帳のデータは自転車のレンタルの申込みや駅までの送迎の時間表など、今まで手作業でやっていたものと結び付けていけたら尚良いです。何かよいアドバイスをいただけたらうれしいです。実力がともなっていないので。。。 よろしくおねがいします。

関連するQ&A