• ベストアンサー

顧客管理システムを作りたい

私の会社で新たにネット通販がスタートし、その顧客管理システムをAccess97で作ろうと考えています。 HPでは会員登録を募って住所などの登録をしてもらいますが、基本的には会員でなくても通販が可能です。(この人を「一般」と呼ぶことにします) 今考えているものとしては、 ・お客様の住所・氏名等を格納するテーブル"会員用名簿T"・"一般用名簿T" 会員は、登録の際に決めてもらったIDのフィールドで判断しますが、一般の方はIDがないので、代わりにオートナンバーを設定して、ID代わりにしています。 ・注文入力フォーム 注文がきたとき、住所・氏名、商品明細や出荷日などを登録するフォーム これはクエリー("注文入力用Q")が元になっていて、IDはこのフォームが連結しているテーブルから、住所・氏名は 名簿テーブルからもってきてクエリーを作っています。 さてここで、 私がしたいのは、この注文入力フォームで、IDもしくは 番号を入力すると、住所・氏名が自動で表示されるようにしたいのと、 この注文入力フォームで入力したデータが、テーブルでもクエリーでもいいのですが、一覧表示として見れるようにしておきたいのです。(1テーブルにまとめておきたいというか・・・) で、まず注文入力用Qを作る際ですが・・・ 今"名簿"テーブルは2つあるので、「テーブルの表示で "会員名簿T""一般名簿T"どちらか一方を選ばないといけませんよね?2つともテーブルを表示してしまうとうまく抽出ができません。 ということは、このひとつのフォームでは会員と一般、両方を登録することはできないということでしょうか?注文入力フォームを2つ作ったらデータが分かれちゃうし・・・ 何かよい方法はないものでしょうか?VBを使えばうまくゆきますか?また、皆様はどんなふうに作りますか?言葉足らずで分かりにくいと思いますが、ぜひご意見・アドバイスお願いします!

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

  • ベストアンサー
回答No.2

簡単にしたいのでしたら、名簿のテーブルは、まとめる事でしょうね オートナンバーフィールドとIDフィールドを共に備えた形に、作り直したほうが無難ですよ IDの無い場合は、GUESTとでも表示されるようにしておけば、ナンバーを入れるだけで、会員かそうでないかも判りますしね 現状のまま構造を変えないのであれば、データが分かれてしまうと言う、一番困る形にしかならないように思いますよ まぁ、入力した後で変換して、一括で書き込むって方法も取れなくは無いですが・・・

kojirouap
質問者

お礼

回答ありがとうございます! お返事遅くなってしまいました。 No.1さんのお礼にも書きましたが、やっぱり名簿テーブルは1つにする方がいいですよね!  オートナンバーとID、どっちを入力しても氏名等が表示されるようにはできないでしょうか・・・?私もそれを考えているのですが、なかなかうまくできません・・・(;_;)

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>お客様の住所・氏名等を格納するテーブル"会員用名簿T"・"一般用名簿T" 会員用名簿Tと一般用名簿Tをユニオンクエリーを使って同一クエリで表示するようにすれば大丈夫です。 ユニオンクエリを使えば会員用名簿Tと一般用名簿Tのレコードを一緒に表示できるのでそのユニオンクエリを使って住所・氏名を持ってくるようにすれば出来ます。 一度ユニオンクエリのヘルプをご覧になってみてはいかがですか。

kojirouap
質問者

お礼

回答ありがとうございます! お返事遅くなってしまいました。 なるほどユニオンクエリ、名前は聞いたことあります! しかしヘルプを見ても、 ・・・??? 私にはまだ難しいようですxxx まだまだ勉強不足でなかなか思ったようにできないです・・・ 参考になりました、ありがとうございます!

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.1

はじめまして。 簡単なヒントだけですのでお役に立つかどうか。 まず、テーブルが2つに分かれていますので、共通で2つ合わせた時にユニークなるキーが必要になります。 いままのままでは、テーブル毎に検索するしかありません。要するに2つ合わせた時にユニークになるキーを保存する項目が必要になります。追加してください。ユニークキーが出来れば検索は簡単でしょう。 また、顧客番号を拡張して、会員と一般とを一緒に1つのテーブルに入れちゃう事です。顧客IDを例えば現状で6桁使用されているのであれば、7桁にし会員に方は頭に0を付与する。一般は先頭1桁目に'1'を付与する。 なんてどうでしょうか? データをいじることにはなりますが、どの道ご要望を実現しようとすれば、データ構造は変えないとムリです。

kojirouap
質問者

お礼

回答ありがとうございます! お返事遅くなってしまいました。 なるほど、共通のIDを作ってしまえば検索もカンタンにできますね!参考になりました(^O^) やっぱり名簿テーブルは2つに分けない方がいいですよね・・・ 今、仮で使っているフォームでは1つなんですけど、会員と一般の区別がうまくできなかったので、なら2つに分けたらどうだ!と思ったのですが、よけいややこしくなってしまいました(^_^;)助かりました、ありがとうございます!

関連するQ&A

  • アクセスのクエリの”ここ”を理解したい。(IDの自動入力について)

    アクセスでクエリだけをつかって(VBAをつかわず)簡易システムを作りたいのですが、下記のことについて教えてください。理解した上で”確信”を持ちたいのです。下図のわかりにくい質問図で申し訳ありません。 ************************************************* (クエリデザインビュー)        『備考入力クエリ』 《テーブル名:備考》.............《テーブル名:名簿》   ....... ID ...... ←----..........ID    備考1           氏名    備考2           住所 ************************************************* フィールド: ID   氏名   住所   備考1   備考2 テー ブル:名簿  名簿   名簿   備考    備考 ************************************************* とクエリを作成したときに、クエリ上で、「備考1」「備考2」に入力すると、結果的にテーブルの「備考」のIDにはクエリの連結したもの(テーブル:名簿のID)が自動入力される。このような理解にたった前提で簡易システムを構築しても間違いないでしょうか?私が試した限りではそうなるのですが、何故できたのか偶然の発見で、確信がないのです。それでこの考え方の正誤について教えてください。ここでつまづくとすべてが狂ってしまいそうで・・・。よろしくお願いいたします。

  • EXCELを使って顧客管理

    マクロ・VBA初心者です。 EXCELで顧客管理をしたいと思います。 顧客台帳として 一行に 新規登録日、会員番号、氏名、フリガナ、郵便番号、住所、電話番号、メールアドレス と あ行  か行 ・・・・といったように入力してあります。 会員番号については、あ行から1001 か行2001から番号がふってあります。また、他支店分にかんしては、頭にSやTをつけた形で同じように会員番号を振り分けてあります。 また、別ファイルに売上台帳があり、現在は 売上日、会員番号、氏名、年齢、担当者、新規OR旧、売上金額、チケット使用の有無 を入力しています。 このファイルは縦台帳で売上日をどんどん縦に入力している状態です。 また、VLOOKUP等を使用して、会員番号を入力すると 氏名、年齢が表示されるようにしてあります。 これらを使用してやりたいことが (1)売上台帳に入力されたら、自動的に会員番号の隣の欄に来店回数を表示したい。 (2)会員台帳に前回来店日を表示したい。 (3)年代別・年齢別の売上集計を出したい。 (4)会員台帳・売上台帳の入力フォームを作りたい。 これが、EXCELで可能なのかわかりませんが、よろしくお願いします。

  • 顧客IDを入力すると顧客名や住所が表示されるように

    Accessで、フォームから顧客テーブルにある顧客IDを入力すると、同じフォーム内にある「顧客住所」や、「電話番号」など、顧客テーブルに登録してある情報が表示されるようにするには、どうすれば良いでしょうか? 環境は WindowsXP Access2003 です。

  • Access 複数テーブルのリレーションシップ

    Access2013  4種類の名簿をそれぞれのテーブル(4種類)で管理してありますが、 同じ方(氏名)が4種類の名簿全部には無く、2つや3つの名簿にばらばらにあります。  この4つのテーブルを同時に表示し入力できる分割フォームをつくりたいのですが、 この際の、4つテーブルの氏名をリレーションシップする結合プロパティの設定方法を教えて下さい。 あるいは、クエリのそれぞれのテーブルのフィールド(氏名)の抽出条件になんと書き入れたらよいか。教えて下さい。 宜しくお願いします

  • ACCESS初心者です。

    ACCESSで会員名簿を作成しています。 『テーブル名簿』に会員番号・氏名・住所・電話番号などを入力しています。 『テーブル利用状況』に利用者全員の日付・会員番号を入力しています。 今までの利用回数が3回以内の会員にダイレクトメールを送付しようと考えております。 利用回数3回以内の人の氏名と住所を会員番号で照合して抽出することは可能でしょうか? 現在お恥ずかしながら私の知識ではテーブルからクエリを作成するというところまでです。 他の質問を見てみたのですが、どうも例から応用させるということができず、質問させていただきました。 どうかお答えいただけますようお願いします<(_ _)>

  • クエリでの入力が表示されません

    アクセスを使って会員情報の整理をしたいのですが、上手くいきません。 テーブル1 ・ID ・会員名 ・住所 テーブル2 ・ID ・所属委員会 ・所属部会 上記2つのテーブルにリレーションを組んで、クエリを作成しました。 クエリ ・ID ・会員名 ・会員住所 ・所属委員会 ・所属部会 クエリの画面で入力をし画面をいったん閉じてしまうと、 今まで入力しているものは表示されずに新しいレコードのみが表示されています。 でも、画面を閉じる前のレコードはきちんとデーターに反映されているのですが・・・ どうしたらクエリに今までの入力が表示されるのでしょうか? 宜しくお願いします。

  • メインレコード1件に対する複数画像を、フォーム上で表示させるには

    Access2003で、画像の管理をしています。 現在、テーブルは1つ(t_名簿)だけで、[名簿ID][氏名][パス名]の項目があります。 フォーム上にイメージコントロールを配置して、入力されたパス名から、別フォルダに格納してある画像を表示させています。これは問題なくできました。 しかし画像が無限に増えていくので、現在の様に「1レコードにつき1枚の画像」ではなく、「1件のメインレコードに対し複数の画像」という風にしたいと思います。 t_名簿→[名簿ID][氏名] t_パス→[パスID][名簿ID][パス名] このようにテーブルを2つにし、サブフォームのあるメインフォームを作成しました。 このような状態で、フォーム上で複数の画像を表示させることは可能でしょうか? サブフォームに3件のパス名があれば、3枚の画像を表示させるといった風です。 イベントのコードをどのように書けばよいのか検討がつかないので、教えて頂ければと思います。 直接画像を埋め込むという方法も試しましたが、ファイルサイズが大きくなりすぎて快適に作業ができませんでした。 なので、パス名から画像を表示させたいと思っています。

  • アクセスでのデータ管理について(長文です。)

    アクセス初心者です。 これからデータの入力、管理、帳票をアクセスで構築しようと思っているのですが、アクセスはデータを入力した時点でデータが保存されてしまうので過去のデータが残りません。またデータの変更及び共有をうまくやりたいのですがよい方法がわかりません。 今回構築したいデータベースは、 1.過去の記録がすぐわかるようにしたい。(更新前のデータがわかるようにしたい。) 2.データの変更及び共有を簡略化したい。(A社で変更したデータをB社のデータベースにいれこみたい。) 【データベースの概略イメージ】  A社      B社 データベース1 データベース2(1と同じもの) テーブル1 → テーブル1 テーブル2 → テーブル2 テーブル3 → テーブル3 クエリ1    クエリ1 クエリ2    クエリ2 フォーム1   フォーム1 フォーム2   フォーム2 *リレーションあり *A社でテーブル1の内容を変更して、B社のテーブル1を新しいものに置き換えたい。 (本を読むとリレーションが崩れると書いてありました。) *B社で変更してA社に戻すこともある。 テーブル1 項目 ID 100 住所 あああ 氏名 △△様 電話番号 111-1111 *例えば、ID100のデータの氏名を変更するとき、変更前がどうだったかわかるようにしたい。(1月時点では△△様、2月時点では□□様とか) 誰かアクセスの操作方法に詳しい方がおられましたら、よい方法又はアクセスに関する詳しい本とかサイト等教えて下さい。よろしくお願いいたします。

  • ユーザ管理システムを作りたいのですが・・

    ・会員登録 最初にメールアドレスを入力して次へ 確認KEYをuniqidより、登録日をgmdateより、紹介者を$_GETより メールアドレス(MAIL)・確認キー(KEY)・紹介者(INT)・登録日(TIME) としてMySQLのテーブルにあり、 確認メールの内容は 「以下のURLをクリックして手続きをお進み下さい。  http://www.****.jp/kari.php?mail=送信先メールアドレス&key=送信時に作った確認キー」 です メールアドレスと確認キーをMySQLの仮登録テーブルのMAILとKEYと一致したら 処理を続け、他の入力情報と紹介者と登録日付とメールアドレスを 会員テーブルに登録して登録完了 ・ログイン フォームの入力情報と 会員テーブルのIDとパスワードが合った場合 処理を続ける を作りたいのですが、 簡単なスクリプト とか お勧めの参考書 とか お勧めのサイト などを教えてください

    • ベストアンサー
    • PHP
  • 【ACCESS】リレーションを組んでいるフィールドがNullの場合

    一応、過去ログの検索もしてみましたが見当たらないようですので、質問させて下さい。(あまりにも初歩的すぎるのかしら?^^;) ○会員-施設クエリ  ■会員情報テーブル   ・会員情報ID   ・氏名   ・生年月日   ・[施設情報ID]  ■施設情報テーブル   ・施設情報ID   ・郵便番号   ・住所   ・電話番号 上記のような構成で2つのテーブルを[施設情報ID]でリレーションを組んでクエリを作成しております。 会員情報を検索する際、所属施設がわかるようにしたいわけですが、会員情報の入力時に[施設情報ID]がnullのままだと、そのレコードはクエリの表示結果に反映されません。(会員情報テーブルには「0」と表示されて出てくるのですが) 強制入力させたいところですが、会員情報入力の際に所属施設が判明していない場合があり、そういうワケにもいかない状況です。 [施設情報ID]がnullの場合は施設情報関連のフィールドは空欄のままでよいので会員情報部分だけでも表示してほしいのですが・・・。 どなたかお知恵をお貸し下さい。宜しくお願い致します。<(_ _)>