• ベストアンサー

アクセスでこんな事ができますか?

初心者なので質問内容がおかしかったら指摘して下さい。 顧客データを一つのテーブルで作りました。 例えば、住所をダブルクリックすると、違うテーブルが出てきて、そこに地図が載っている(地図や絵が書けるようなテーブルがあればいいのですが)。 例えば、氏名をダブルクリックすると、その人の過去の取引歴が見られる。 などという事ができますか? もしできるのなら、方法を教えて下さい。 また、アクセス以外でそういうことができるソフトがあったら教えて下さい。

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

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

質問の内容からみるとAccessで比較的簡単に出来ると思います。 >顧客データを一つのテーブルで作りました 顧客データには顧客IDとかの主キーは作ってありますでしょうか?主キーがなく名前では同姓同名があった場合、識別できなくなります。 >例えば、住所をダブルクリックすると違うテーブルが出て・・ 顧客テーブルにOLEオブジェクト型のフィールドを作りExcelやWordを指定して地図など作成できるようにする。またはハイパーリンク型のフィールドにしてExcelなどで作ったファイルを指定します。 テーブルを開きそのフィールドを右クリックすればOLEオブジェクト型の場合、オブジェクトの挿入を選択するとウィザードが開きますので順次進めていけば出来ます。ハイパーリンク型の場合はハイパーリンクを選択し同様にウィザードに従って進めファイルを指定すれば出来ます。 住所をクリックして表示は顧客テーブルのフォームを作って住所のコントロールのプロパティのイベントでダブルクリック時イベントにOLEもしくはハイパーリンクを開く記述が必要になってしまいますのでフォームにテーブルのハイパーリンクのフィールドを作った方が簡単です。OLEオブジェクトの場合はオブジェクトをフォーム内に挿入するため一覧の様な帳票フォームには適しません。 >氏名をダブルクリックすると、その人の過去の取引歴が見られる テーブル自体を開いてフィールドをクリックとかではなく顧客テーブルのフォームを作りそのフォームの名前のコントロールのプロパティのイベントでダブルクリック時イベントでその顧客の顧客IDなど主キーを使い取引暦のテーブルから同じ顧客IDのレコードを抽出するようにすれば出来ます。 取引暦のテーブルのフォームを作って表示するかクエリを表示するように出来ます。そのフォームやクエリを開くマクロを作りフォームの場合は開く際にフィルタでクエリを指定して抽出しフォームに表示するようにしておき、前記の顧客テーブルフォームの名前コントロールのダブルクリック時イベントにそのマクロを選択しておけば出来ます。 ざっとですがこんな感じです。#1の方も書いてありますがクエリ・フォーム・マクロを勉強すれば出来ます。勉強するといっても何かを読むより実際にやってみて分からないところをヘルプやホームページなど検索すれば出来る程度のことです。

nyamnyam
質問者

お礼

アドバイスありがとうございます。 丁寧に教えて下さり、感謝します。 順序立てて詳しく記して下さったので、たどりながらゆっくり作業してみます。 回答を下さった皆さんの内容を読んでも、すばやく理解できない私の勉強不足は否めません。 先ず用語から理解せねばと思いました。 仕事上どうしても欲しい機能なので、役立てられるよう頑張って理解します。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#2です。#2は大上段の話になってますが、誤解されそうな表現があるので付け加えさせてください。 テーブルのある列に データ型をOLEオブジェクト型を指定し、画像のファイル名を指定しておくと、そのセルをクリックするとその画像が出ます。これはユーザーのイベントプロシージュアーの結果ではなく、エクセルの機能です。 これだけでは、応用が利かないので、フォームでたとえば、商品番号を入れてボタンをクリックすると、商品画像がでるような仕組みは、FOMの教科書にも載っていたと思うので、見てください。

nyamnyam
質問者

お礼

アドバイスありがとうございます。 丁寧に教えて下さり、感謝します。 仕事上どうしてもほしい機能なので、プロの方にお願いして専用のソフトを作ってもらう案もありましたが、たぶん高額になるだろうと予想し、微力ながらも自分でやってみようと思っているところです。 しかし、回答下さった方々の内容を読んでもすばやく理解できない私の勉強不足は否めません。 ただ、質問内容に書いた希望の作業はAccessでできるようなので、もう少しAccessの機能を理解してから仕事に取り入れようと思います。 頂戴したアドバイスは丁重に参考にさせていただきます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>住所をダブルクリックすると 住所は「テーブル」の住所のことでしょうが、テーブルには、ダブルクリックすると言うような、マウスの動作をOSに伝えて、その機会にユーザーに何かやらしてもらう機械をもらう機能(イベントといいます)をを備え付けていません。 それらはテーブルを基に作る(基にしなくてもよいが)「フォーム」のイベントを使って、捕らえます。 >方法を教えて下さい 上記に書いたことさえ認識してない状態では、先は遠いです。 要求されているようなことは、プロが、依頼されたシステムや販売ソフトの中で使うテクニックです。上記で「テーブルには備え付けていません」と書きましたが、ウインドウのプログラム処理の中まで判る人は、そこを突破して実現が可能という、原理的な可能性がありますけれど、大変な基礎からの勉強がいるようです。  やりたいならば、アクセスVBAのコントロールのイベントの勉強を して、ボタンをクリックして地図ファイルを読みこみ、表示する術でも勉強してください。 ボタンをクリックすればピクチャボックスに写真が出るようなのは比較的早く習得できるでしょう。しかし写真の中の区画部分をクリックすると何かをするというのはさらに難しい。 >アクセス以外でそういうことができるソフト 「地図が載っている」の先に何に使うかが、利用者にとっては、購入目的なので、利用目的(とそのソフト種類)を言わないと、答えられません。 質問の内容のスキルは、最終目的を達する中での過程の、1ステップであって、それだけではツールにしかすぎません。そういうツール類を開発者向けに販売している会社もありますが、プロ向けです。 質問の場面は、たとえば人事システムの中でも出てくるかも知れないし、商品販売ソフトの中で出てくるかもしれない。年賀ソフトの中に出てきてもおかしくない。 そういう意味・機能のまとまりで、市販ソフトは作られ販売されていますから、おっっしゃっていることはそういう個別ソフトのデモでも見て、研究するよいほかないでしょう。有名市販ソフトは大型電気店などで、メーカーの係員がデモと説明をしています。それかまたは実際使っている人を見つけて聞くか。

回答No.1

ご質問のような機能を実現しようとすると、テーブルだけではなく クエリやフォーム、マクロやモジュールなどを使用して、そうした機能を持つ画面を作成する事になりそうですね。 地図などの画像データは、テーブルに「OLEオブジェクト型」のフィールドを作れば保存は可能です。 また地図の画像ファイルはPCの特定の場所に入れておき、アクセスのテーブルにはそのファイルのパスを保存しておく、といった方法もあります。 顧客データのテーブルに、例えば「お客様番号」のような一人の顧客を特定できるキー情報があり そのキー情報を用いて他のテーブルに過去の取引のデータが保存されていれば 「顧客単位での取引歴」を表示させる事も可能です。 <顧客テーブル> お客様番号  氏名 001     Aさん 002     Bさん <取引テーブル> お客様番号  取引年月   内容 001     2005/09/01  販売 001     2005/09/05  買入 002     2005/08/10  販売 002     2005/08/20  販売 ↑例えばこんな構造のテーブルにデータが保存されている場合 「Aさんの取引歴」を見たければ、取引テーブルからお客様番号が001のデータを抜き出すという方法で 履歴を表示させる事が可能になります。 ただしこの場合も「クリックしただけで自動的に表示が切り替わって・・・」というのは テーブルだけでは実現できませんので、フォームを使って画面を作成する必要があります。 まずはアクセスの入門書でクエリ、フォーム、マクロなどの使い方を 勉強されてはいかがでしょうか。

nyamnyam
質問者

お礼

アドバイスありがとうございます。 丁寧に教えて下さり、感謝します。 もう少しアクセスの機能を理解してから仕事に取り入れたほうがいいですね。。 でも、アクセスで、やりたい作業はできるようなので、いただいたアドバイスを参考に理解できるよう努力します。 実は「はじめてのAccess」と言う本を買ってあるのですが、読んでも用語の意味がわからないところが多く、つまづいていました。(電化製品の分厚い取説のようです) がんばります。

関連するQ&A