Microsoft Access ClubAccess超初心者対象ForumAccess初級者対象ForumAccess初・中級者対象ForumAccess VBA Tips ForumDAO、ADO、SQL Forum

     

No53099.顧客管理データベース作成にあたって

タイトル顧客管理データベース作成にあたって
記事No: 53099
投稿日: 2005/07/20(Wed) 15:59
投稿者: 初心者
OS:windows XP pro
Access Version:2003

初めて投稿するものです。
知人が新規事業を始めるにあたり、顧客管理データベースの作成を行っております。
現状PCを使える人間が僕しか居ないので、ズブの素人ではありますが本とネットを交互に見て顧客管理データベースの作成を行っております。

ただ右も左もわかりませんのでこのホームページでいろいろとお勉強をさせていただいておりました。

最初にお伺いしたいことは検索フォームの作成についてです。
今回当方で使用している顧客データの中に
・自宅電話番号
・勤務先電話番号
・携帯電話番号
と、以上三種のフィールドを作りました。
ただすべて別々のフィールドを使っているため、顧客検索フォームを作成する際にどうしたらよいのかわかりません。(電話番号での顧客の識別を行うため)
当方の希望としましてはひとつのテキストボックスに顧客の番号(上記三種どれでも)を打ち込めば検索できるようにしたいのですが、それは可能でしょうか?

また、生年月日を打ち込むことにより、年齢を自動的に算出する機能、顧客に対しての売上(別々のフォームに打ち込んだもの)を最後に別のフォームに自動的に合算で算出、保存することはできますでしょうか。

画像掲示板にスナップショットを添付し投稿したのですが、どうやら質問はこちらにした方が良いようですので改めて投稿しました。


ご迷惑をおかけしますが宜しくお願いいたします。

タイトルRe: 顧客管理データベース作成にあたって
記事No: 53103
投稿日: 2005/07/20(Wed) 16:11
投稿者: fana
※適宜改行をお願いします。
> 最初にお伺いしたいことは検索フォームの作成についてです。
> 当方の希望としましてはひとつのテキストボックスに顧客の番号
>(上記三種どれでも)を打ち込めば検索できるようにしたいのですが、
>それは可能でしょうか?
可能です。
テキストボックスで記入したものを条件として、クエリで抽出できます。

> また、生年月日を打ち込むことにより、年齢を自動的に算出する機能、
これは、このHP内にある
http://www.accessclub.jp/samplefile/samplefile_34.htm
とか参照してみてはいかがでしょう?

>顧客に対しての売上(別々のフォームに打ち込んだもの)を最後に別のフォームに
>自動的に合算で算出、保存することはできますでしょうか。
これもできます。過去ログを探してみてください。

タイトルRe^2: 顧客管理データベース作成にあたって
記事No: 53108
投稿日: 2005/07/20(Wed) 16:18
投稿者: 初心者
>fanaさん、TWESTさん

ありがとうございます。

> テキストボックスで記入したものを条件として、クエリで抽出できます。

大変申し訳ないのですが、抽出するためのクエリはどのような形で構築すればよいでしょうか。
クエリの理屈がいまだによくわからないので、四苦八苦しています。


> > また、生年月日を打ち込むことにより、年齢を自動的に算出する機能、
> これは、このHP内にある
> http://www.accessclub.jp/samplefile/samplefile_34.htm
> とか参照してみてはいかがでしょう?

さっそく上記に関しては行ってみようと思います。


> >顧客に対しての売上(別々のフォームに打ち込んだもの)を最後に別のフォームに
> >自動的に合算で算出、保存することはできますでしょうか。
> これもできます。過去ログを探してみてください。

ありがとうございます。まずは探してみることですね。
ただ申し訳ないのですが抽出のクエリのみ教えていただけますか。宜しくお願いいたします。

タイトルRe: 顧客管理データベース作成にあたって
記事No: 53104
投稿日: 2005/07/20(Wed) 16:11
投稿者: TWEST
> 当方の希望としましてはひとつのテキストボックスに顧客の番号(上記三種どれでも)
> を打ち込めば検索できるようにしたいのですが、それは可能でしょうか?

可能です。

> また、生年月日を打ち込むことにより、年齢を自動的に算出する機能、顧客に対しての売上
> (別々のフォームに打ち込んだもの)を最後に別のフォームに自動的に合算で算出、保存する
> ことはできますでしょうか。

できます。

タイトルRe: 顧客管理データベース作成にあたって
記事No: 53107
投稿日: 2005/07/20(Wed) 16:18
投稿者: 小僧
初心者さん:
こんにちは。

> 当方の希望としましてはひとつのテキストボックスに顧客の番号
>(上記三種どれでも)を打ち込めば検索できるようにしたいのですが、それは可能でしょうか?

普通はありえないと思いますが、

>・自宅電話番号
>・勤務先電話番号
>・携帯電話番号

に重複の電番があった場合の処理さえできれば問題なくできると思われます。
(A さんの勤務先電話番号と B さんの勤務先電話番号が同じとか…)


> また、生年月日を打ち込むことにより、年齢を自動的に算出する機能、

過去ログを参照して頂くと解ると思われますが、
たくさんの回答者が年齢算出のコードを書かれていますよ。

>顧客に対しての売上(別々のフォームに打ち込んだもの)を
>最後に別のフォームに自動的に合算で算出、保存することはできますでしょうか。

テキストボックス「総額」の「コントロールソース」に

=[金額1]+[金額2]+[金額3]…

と指定すれば合計金額が出ると思います。


> 画像掲示板にスナップショットを添付し投稿したのですが、
>どうやら質問はこちらにした方が良いようですので改めて投稿しました。

画像掲示板の投稿に返信がつかないように、こちらに移動した旨を
書き込んで「解決済み」にしておきましょう!

タイトルRe^2: 顧客管理データベース作成にあたって
記事No: 53110
投稿日: 2005/07/20(Wed) 16:30
投稿者: 初心者
>小僧さん
ご回答ありがとうございます。

> 普通はありえないと思いますが、
>
> >・自宅電話番号
> >・勤務先電話番号
> >・携帯電話番号
>
> に重複の電番があった場合の処理さえできれば問題なくできると思われます。
> (A さんの勤務先電話番号と B さんの勤務先電話番号が同じとか…)

例えば重複の電話番号があった場合、エンターを押すごとにレコード順に抽出していく。というような勝利は可能ですか?またそういった場合にはどういった形で処理を構築すればよいのでしょうか。


> > また、生年月日を打ち込むことにより、年齢を自動的に算出する機能、
>
> 過去ログを参照して頂くと解ると思われますが、
> たくさんの回答者が年齢算出のコードを書かれていますよ。

上記に関しては少し過去ログを読んでみます。


> >顧客に対しての売上(別々のフォームに打ち込んだもの)を
> >最後に別のフォームに自動的に合算で算出、保存することはできますでしょうか。
>
> テキストボックス「総額」の「コントロールソース」に
>
> =[金額1]+[金額2]+[金額3]…
>
> と指定すれば合計金額が出ると思います。

さっそく行ってみたのですが、どうもうまく機能しないのですが…。どうしたらよいでしょうか?


> > 画像掲示板にスナップショットを添付し投稿したのですが、
> >どうやら質問はこちらにした方が良いようですので改めて投稿しました。
>
> 画像掲示板の投稿に返信がつかないように、こちらに移動した旨を
> 書き込んで「解決済み」にしておきましょう!

ありがとうございます!いろいろとご迷惑おかけしてすいません。

タイトルRe^3: 顧客管理データベース作成にあたって
記事No: 53116
投稿日: 2005/07/20(Wed) 17:09
投稿者: 小僧
初心者 さん:
こんにちは。

テーブル名を仮に「T_Temp」、ユニークな(重複しない値)「ID」というフィールドがあるとして
クエリの SQL ビューに下記 SQL を貼り付けてみてください。

SELECT T_Temp.ID, T_Temp_1.自宅電話番号, T_Temp_1.勤務先電話番号, T_Temp_1.携帯電話番号
FROM T_Temp
LEFT JOIN T_Temp AS T_Temp_1 ON T_Temp.ID=T_Temp_1.ID
WHERE (((T_Temp.自宅電話番号 & T_Temp.勤務先電話番号 & T_Temp.携帯電話番号)
Like '*123-456-7890*'));

「123-456-7890」のところに、フォームのテキストボックスから得られる電話番号をセットできれば、
電話番号による検索はこのクエリが使えると思います。


> 例えば重複の電話番号があった場合、エンターを押すごとにレコード順に抽出していく。

ユーザーが改行したい時「Enter」を押したりするとレコードが変わってしまいますよね。
ユーザに優しい(?)フォームを望まれるのであれば、面倒ではありますが

「検索結果○○件」

というようなテキストボックスと

「次のレコード」
「前のレコード」

のようなコマンドボタンが良いのではないかと思います。


>顧客に対しての売上(別々のフォームに打ち込んだもの)を
>最後に別のフォームに自動的に合算で算出、保存することはできますでしょうか。

「別々のフォーム」というのを読み飛ばしてしまっていました。すみません。
フォームに記入した値は基本的にはフォームを閉じると失われてしまいます。
(Public変数に格納する手はありますが。)

「別のフォーム」を閉じない(非表示)で結果の入るフォームを開くか、
一度テーブルに値を格納して呼び出すかが一般的かと思われます。

タイトルRe: 顧客管理データベース作成にあたって
記事No: 53115
投稿日: 2005/07/20(Wed) 17:07
投稿者: fana
>大変申し訳ないのですが、抽出するためのクエリはどのような形で構築すればよいでしょうか。
>クエリの理屈がいまだによくわからないので、四苦八苦しています。

色々とやり方ありますけど、まず、簡単に。(試してみてください)

クエリのSQLビューに下記をいれてみて、
SELECT テーブル名.*
FROM テーブル名
WHERE (((テーブル名.自宅TEL)=[Forms]![フォーム名]![テキストボックス名]))
  OR (((テーブル名.勤務先TEL)=[Forms]![フォーム名]![テキストボックス名]))
  OR (((テーブル名.携帯TEL)=[Forms]![フォーム名]![テキストボックス名]));

んで、クエリのデザインビューを確認して、どんな作りになってるか見てください。
単純にやっていることは、命令文そのままなんですけどね^^;
SELECT←選択、FROM←何処から?(=テーブルとかクエリとか) WHERE←抽出条件

[Forms]![フォーム名]![テキストボックス名]
は、検索フォームで入力する値を指すので、クエリのデータシートビューをそのまま確認すると
パラメータ入力を聞いてきます。

ちなみに、あいまい検索(090で始まるTELを持つ顧客をリストアップしたい)
とか考えるならLike演算子とか調べてください。

タイトルRe^2: 顧客管理データベース作成にあたって
記事No: 53122
投稿日: 2005/07/20(Wed) 19:54
投稿者: 初心者
fanaさん、小僧さん

ありがとうございます。
早速実行してみようと思います。
ただまだいくつか分からないこともありますので、このトピックはまだクローズしないでおきます。
宜しくお願いします。

タイトルRe^2: 顧客管理データベース作成にあたって
記事No: 53388
投稿日: 2005/07/22(Fri) 18:01
投稿者: 初心者
小僧さん、fanaさん

先日はアドバイスどうもありがとうございます。
小僧さん、fanaさんにアドバイスをいただいたとおり、本日クエリの入力を試してみたのですが、どうもうまくいきません。

アドバイスいただいたクエリはどこに打ち込めばよいのですか?
(テキストボックスですか?それともコマンドボタンですか?コマンドボタンですとマクロでは識別できません。というようなダイアログが表示されてしまいます。)

本当に初歩的な質問だと思います。わざわざお時間割いていただくことは恐縮なのですがお教えください。
宜しくお願いいたします。

[次頁]

 

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