• ベストアンサー

ACCESSで住所録

勉強のためにACCESSで住所録を作ろうと思っています。 データを入れたのちに 1 大学時代の友人 2 会社関係 3 親戚 というようにふりわけたいのです。 ************************** この場合 1 元の住所録テーブルに所属Noフィールドをおき、   別に所属テーブルを作って所属Noフィールドと所属名フィールドで   リレーションを組む。 2 所属名フィールドを必要分作ってチェックボックス形式にして   「大学の友人」のところにチェックのある人を抽出する   という方式にする。 3 フォームでデータベースを作成するときにドロップダウン方式にする   (ただしこのやり方はわからない。できるなら教えてください) どれがいいと思いますか? また他に良い方法はありませんか? ヴァージョンは2002です。 それとこの作った住所録で宛名印刷はできますか? するにはどうしたらできるようになりますか? なにせ初心者なのでサルでもわかるようにお願いします。 また一度書き込んだら補足がきてないかCHECKしていただくよう よろしくお願いいたします。

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

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

住所録と言うテーブルには、所属Noと言うフィールドは必須でしょうね、でなければ、分類するのに別な項目を設ける必要がありますね で、もう一つのテーブル、所属Noと名称と、言うフィールドで出来ているテーブルとで、選択クエリーを作成してやれば、誰が何処の所属になるかの、一覧が出来ます 単に、振り分けるだけなら、この選択クエリーをデータソースにして、パラメータークエリー(選択クエリーの抽出条件にパラメーターを設定する事です)を作成してやれば、どの分類でも抽出可能ですね 後は、出来たパラメータークエリーをソースにして、レポートを作成してやれば、印刷レイアウトを自由に組めますよ 宛名印刷は、ここで色々書くより、ウィザードを起動してみた方が判り易いと思いますよ >3 フォームでデータベースを作成するときにドロップダウン方式にする ↑これって、フォームでデータ入力をしたい、そう言う事ですか? んで、所属Noフィールドにダウンリストを割り当てたい、そう理解して良いんでしょうかね? その場合は、フォームのデザイン画面で、ツールボックスから、ダウンリストを配置し、そのソースを、所属Noテーブルにしてやれば良い訳です 勿論、所属Noテーブルに、主キーを設定してあれば常に並べ替えが行われたりしますけど、主キーを設定したくない場合は、選択クエリーを作成しておいて、Noフィールドに昇順、若しくは降順の設定をしてやれば、余計な制限に悩む事は無いです 大抵の事は、ウィザードで出来る筈ですので、ウィザードを起動してみて、それで判らない場合は、ヘルプを検索してみると、かなり詳しい事が記載されてますよ 勿論、ヘルプに書かれていない事も、山ほどありますけどね

dlx_xlb_qlo_olp
質問者

補足

おはようございます。 でも実際問題 ドロップダウンメニューで「1」「2」「3」と出されても 何が「1」なのか、「1」が「大学友人」なのかわかりませんよね? っていうかそもそもそこのドロップダウンメニューには 「1」「2」「3」と出るのでしょうか? それとも所属名の「大学友人」「会社」とかが出るのでしょうか? は、やってみればいいですね。これからやってみます。 だとすると所属Noフィールドってあんまし有効ではないですよね? だったらはじめっから「所属Noフィールド」を「大学友人」「会社」に してしまって所属名フィールドも「大学友人」「会社」にしてしまえば ドロップダウンメニューにも「大学友人」「会社」となりますよね? (だと意味がないような気がするけど・・・) ま、とりあえずやってみます。 私の言いたいことって理解していただけましたか? ちょっと無理っぽいな。 ドロップダウンメニューに「大学友人」「会社」がでることを祈ってます。

その他の回答 (8)

  • Michoco
  • ベストアンサー率36% (61/169)
回答No.9

またすいません。 列幅に関して訂正です。 1;1は、所属IDのボックスに所属IDと所属名がドロップダウンリストに表示されます。 だから、所属名が必要なければ(なぜって次の所属名ボックスにそれは自動で表示されるので)1;0にします。

  • Michoco
  • ベストアンサー率36% (61/169)
回答No.8

すいません。#7の追記です。 自分が入れた順に表示するときは、クエリ「フォーム」デザインで、「ID」フィールドの並べ替えを昇順にして、氏名の並べ替えは空白にします。

  • Michoco
  • ベストアンサー率36% (61/169)
回答No.7

こんばんわ。私も最初あなたと同じことで悩みました。 もし私が同じものを作るとしたら <住所テーブル>(もちろん電話番号とか好きに追加してください) フィールド名 データ型 ID オートナンバー型 重複なし 主キー設定 氏名 テキスト型 郵便番号 テキスト型 住所1 テキスト型 住所2 テキスト型 所属ID 数値型 (重複あり、長整数型に設定しておく) <所属テーブル> 所属ID 数値型 重複なし 主キー設定 所属名 テキスト型  ↓ テーブルを「開く」クリックして データを下記のように入力する 所属ID 所属名 1    大学 2    会社 3    親戚 次にクエリの新規作成でデザインビューを選ぶ テーブルの表示で2つのテーブルを追加してOK 共通項の「所属ID」をドラッグしてもう一つへ重ねて結合する。(リレーションができる) <住所テーブル>からすべての項目をひとつづつWクリックして下欄へ入れていく。所属IDのあとに所属名だけは<所属テーブル>から選ぶ(←これは重要)。氏名を昇順にデータ表示したかったら氏名の列の並べ替えを昇順にする。 クエリに「フォーム」と名前をつけて閉じる。 フォームの新規作成で基のソースにクエリの「フォーム」を選ぶ。 オートで作成するとすべてのフィールドがテキストボックスで出てくるので、所属IDのボックスを選び右クリックして「コントロールの種類の変更」でコンボボックスを選ぶ。 あとは、前に説明したようにプロパティで必要項目を設定をしていきます。 列数 2 連結列 1 です。 列幅で1cmセミコロン1cmとすると、最初の1は所属IDボックスに数値、次の1は所属名ボックスにそれに対応する所属名が自動的に表示されるはずですから、所属名ボックスには何もしません(入力の必要がないのでタブオーダーを いいえ にしておくと完璧)。 住所テーブルには、所属ID(数値)でデータを格納しておくので、例えばクエリを使って、大学の友人だけを抽出したい時に所属IDの抽出条件に1とだけ入力すればいいわけです。 やってみて下さい。

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

コンボボックスを使って、入力を正確化・省力化することをお勧めします。 その際「コード-意味漢字」の件は、本来はコードをテーブルに持ち、コード-テーブルのテーブルも別立てで持つのがデータベースの基本なんでしょうが、漢字だけ持つのも「あり」でしょう。コンボボックスを入力に使う方法を 整理して見ました。 (データベース・サンプル例) テーブル「関係」を下記のように作ったとします。 コード 関係      注記 01 高校学時代友人 大西高校・東中学 02 大学時代友人 昭和大学 03 職場関係1 関東商事 04 職場関係2 取引先 05 親戚    中谷 06 親戚(妻)    西田 <説明> (テーブル作成) 1.コード・関係・注記の3フィールドのテーブルを作ります。上記。 (列数) コントロールツールボックスよりコンボボックスを貼り付け、 2.コンボボックスの「プロパティ」で「書式」タブの「列数」を 「3」(エンタ)と入力します。 これでドロップダウンの表示列が、「コード」「関係」「注記」の 3列表示されます。「2」にすれば、「コード」と「関係」の2列に なります。 (値集合タイプ) 3.同じく、プロパティの「値集合タイプ」をクリックして、テーブル/ クエリーをクリックします。 (選択肢が少ない時は、値リストを直接作る方法もあります。それに対し本件はデータベースを使います。) (値集合ソース) 4.「値集合ソース」に「SELECT 関係.コード,関係.関係,関係.注記」と入れます。 (連結列) 5.「連結列」について、    「1」と入れると、連結したテーブルに「コード」がセット(例01             、02、03などがセットされる。)    「2」と入れると、連結したテーブルに「関係」がセット(例大学時              代友人、親戚などがセットされる。)    「3」と入れると、連結したテーブルに「注記」がセット(大西高校               昭和大学などがセットされる。) (コントロールソース) 6.プロパティの「データ」タブの「コントロールソース」には、ドロップダウンリストの中からクリックして選んだ値を、セットしたいテーブルとフィールドを指定します。 やり方は、右端で「・・・」を出してクリック。「式ビルダ」が出る。 左列の「テーブル」をクリック。テーブルの一覧が出るので、選択するものをクリック。真中に「フィールド名」が出る。その中から今回入力してセットするフィールドをクリック。OKをクリック。プロパティのXをクリック。   

回答No.5

連結された列以外の物を表示させたい場合は、少々別の作業が必要になりますし、重くなりますけど・・・ 非連結のテキストボックスを作成して、そこの、コントロールソースに関数を設定します =Dlookup([所属コード],[所属T]![所属コード],2,false) こんな具合に、検索して表示させるのが、簡単でしょう

dlx_xlb_qlo_olp
質問者

お礼

ひとつ質問です。 テーブル内で入力したエータが勝手に昇順になってしまいました。 カタカナ→ひらがな→漢字の順。 ちゃんと自分の入れた順にしたいときはどうすればいいですか? 「1.2.3」をふっていくしかないですか?

dlx_xlb_qlo_olp
質問者

補足

あ゛あ゛!! それは管轄外ですねぇ。 ありがとうございました。 他の方法でやりますわ。 長々ありがとうございました。

回答No.4

これは失礼しました、正式名称で言わなきゃまずかったですねぇ フォームデザインで、ツールボックスからダウンリスト(コンボボックス)を選んで配置しますよね、で、そのプロパティを開くと、連結列、列数、列幅って設定が出来る筈ですけどねぇ 値集合ソースを所属テーブルにして、列数を2、列幅をそれぞれ設定して、連結列を1にすれば、表示されるはずだけど もし、Noを先頭の列にしていないと、上手く表示されませんけどね それとも、常に表示させておきたいのでしたら、リストボックスの方が良いかも いずれにしても、使い方は同じですけどね

dlx_xlb_qlo_olp
質問者

補足

すみませんねぇ一度で済まないで。 列数を「2」連結列を「1」にしました。 値集合ソースを所属テーブルにしました。 すると・・・。 ドロップダウンリストに 「所属No」と「所属名」がでてきました。 しかも選択すると 「所属No」が選択されてしまいます。 「所属名」を表示させたいのですが どのようにしたら良いのでしょうか?

回答No.3

ダウンリストで、連結列をNo.の1列目に設定し、表示を2列にすれば名称も出ますよ

dlx_xlb_qlo_olp
質問者

補足

ダウンリストってどこっすか? プロパティのことですか? 「連結列」は「1」となっていますが・・・。 「表示」という項目が見当たりません。 Noしか出せずに困っています。

  • Michoco
  • ベストアンサー率36% (61/169)
回答No.2

またバージョンは2000なんですけど・・。 1.は必須です。これをすると3のドロップダウン方式が利用できます。 3のやり方(私がよくやる方法で、もちろん違うやり方も有りますよ) フォームデザイン画面で所属Noフィールドを右クリックで「コントロールの種類の変更」からコンボボックスを選び、クリック。 またそのボックスを右クリックでプロパティを選択。 プロパティのすべてタブを出して、  コントロールソースに「所属No」を指定。  値集合ソースは「所属名」  列数はそのソーステーブルの左から何列目まで必要かです。  列見出しは必要ないから いいえ  列幅は、リストの表示サイズです。セミコロンで区切ります。もし1列目を表示させたくなければ、0;1と入力すると、0cm;1cmと自動表示されて2列目だけが1cmの幅でリストにでます。  連結列は欲しいデータの列です。やはり左から数えたものです。  リスト行数はドロップダウンさせたときに何行まで最初に見せるか、です。初期値は8ですが、この場合3種類しかないので、3でいいですよね。  リスト幅は列幅の合計です。1;1にしたなら2になります。 それ以外は特に設定変更する必要がなさそうなので、これで終了です。(規定値は最初に入ってる数値のことです。) 宛名印刷は#1の方と同じです。 例えば、レポートの新規作成をクリックすると、 「はがきウィザード」があります。基になるテーブルまたはクエリを指定して、OKを押すと年賀などのオプションがあり、「次へ」にいって連結フィールドを必要な箇所だけ設定していけば簡単にできます。最後の敬称は手入力できます。 以上でできると思います。がんばってください。 できたらアクセスのやさしい解説書を買われることをお薦めします。  

dlx_xlb_qlo_olp
質問者

補足

1は必須なんですか? わかりました。やってみます。 印刷は・・・。 そうですよね。レポート機能がありましたよね? 講習でやったのになぁ! 学習能力なしだな、こりゃ。

関連するQ&A

専門家に質問してみよう