データのコード化とは?Access97でデータベースを構築しているのですが、複数のテーブルで共有するデータをコード化する方法を教えてください。

このQ&Aのポイント
  • データのコード化とは、Access97でデータベースを構築する際に複数のテーブルで共有するデータを専用のコードに変換することです。データのコード化によって、氏名や所属などの情報が選択可能になり、正確なデータ管理が可能となります。
  • 具体的な手順としては、テーブルAで氏名と所属の情報を登録します。これにより、名前が選択可能になり、同時に所属も連結されます。次に、テーブルBのフォーム上で名前を選択します。ただし、所属が正しく表示されない場合は、テーブル自体で選択することで正しく認識されることがあります。
  • 問題を解決するためには、データのコード化が必要です。具体的な方法は、コードを利用して所属の情報を正確に表示することです。コード化によって、データの管理が容易になり、フォームやレポート上でも正しい情報が表示されるようになります。
回答を見る
  • ベストアンサー

データのコード化とは?

Access97でデータベースを構築しているのですが、複数のテーブルで共有するデータをコード化する方法を教えてください。 簡単にいいますと テーブルAで名前と所属を記入(以後名前は選択できるようになり、同時に所属も連結して選択)つまり氏名・所属の登録的役割。 テーブルBはあるフォーム上で名前を選択する (本当はここで所属も自動で選択されるはず)が所属が正しくない。 ちなみに所属はYes/Noで分類してあります。 ここでテーブルBをフォーム上からではなくテーブル自体で選択すると フォーム・レポート上でも正しく認識します。 この問題を解決するためにコード化が必要だとアドバイスいただいたのですが 具体的にどうすればいいのか教えてください。

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

  • ベストアンサー
  • Nii
  • ベストアンサー率48% (79/162)
回答No.1

テーブルAの名前と所属のみを参照したいのであれば、無理にモジュールを書く必要は無いと思います。 コンボボックス(名前)の値集合ソースを ---------------------------------------* SELECT テーブルA.名前, テーブルA.所属 FROM テーブルA; ---------------------------------------* 所属のコントロールソースに ---------------------------------------* =[名前].[Column](1) ---------------------------------------* を設定してみて下さい。 只、この場合は、参照のみなので、所属を参照したければ、必ずテーブルAを参照しなければなりません。 しかし、テーブルAに変更をかければ、全てのデータが書き変わるので(表現が不適切かもしれませんが)整合性は保てると思います。

関連するQ&A

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

    アクセス初心者です。 これからデータの入力、管理、帳票をアクセスで構築しようと思っているのですが、アクセスはデータを入力した時点でデータが保存されてしまうので過去のデータが残りません。またデータの変更及び共有をうまくやりたいのですがよい方法がわかりません。 今回構築したいデータベースは、 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月時点では□□様とか) 誰かアクセスの操作方法に詳しい方がおられましたら、よい方法又はアクセスに関する詳しい本とかサイト等教えて下さい。よろしくお願いいたします。

  • Yes/No型のデータ抽出

    Access97で出面管理(出勤簿)を作成しています。 レポートを印刷する際請求を出す都合上、自社社員分と応援社員分とを分けるため社員名と所属が自社か応援かを分けるためのテーブルを作成しました。 その分類方法はYes/No型(True=応援社員、False=自社社員)に設定しました。 その際、氏名を選択すると自動で自社/応援かが認識できるようにしました。 その後、必要なテーブル・クエリー等を設定し、フォームから入力してみると 自社社員としてしか認識しません。 そこで該当するテーブルから入力(氏名=テキスト型・自社/応援=Yes/No型 チェックボックスONで応援扱い)するとフォーム・レポートでも 認識してくれます。 しかしこの方法では毎日同じ応援社員がいた場合その都度チェックボックスを Onにしなければならず非常に厄介です。 しかもデータが毎日蓄積されるのでしばらく入力を忘れたりするとそれこそ手間がかかってしまいます。 どのように設定(テーブル・クエリー・リレーション等)を変更してやれば 良いのかアドバイスお待ちしております。 ちなみに現時点ではフォームから入力する際、氏名をコンボボックスで選択でき その後連動して所属が決定するようになってます。

  • データ更新後にDlookupによるデータ表示

    困っています。フォームで、フィールド[氏名コード]に入力したら、マスターテーブル「名前表」(フィールド名:[名前コード],[名前])を参照して、テキストボックス[氏名]に名前を表示するようにしたいと思います。テキスト[氏名]のデータプロパティに =Dlookup([名前],[名前表],[氏名コード]=[名前コード])としたら、最初は、うまく表示されますが、2回目にデータ更新したら、すぐに更新後のデータが表示されません。一度、フォームを閉じて、また開いたら更新後のデータが表示されますが・・・・更新後のイベントなど使って、すぐ表示されるようにできないでしょうか?よろしくお願い致します。

  • アクセスのフォーム、コードを入れると名前が出るのはなぜ?

    アクセス初心者ですが、フォームを作成時、疑問に思って考えるほど混乱してしまいました。 例えば、 Aテーブル:日付、店コード、売上のフィールドを作る。(主キーなし) Bテーブル:店コード、店名(主キーは店コード) リレーションは店コード(B)→店コード(A)に結び、すべての整合性にチェック それぞれのテーブルに、数件のデータを入力 この状態で入力フォームをウィザードで作ったのです。 Aテーブルからすべてのフィールド、Bテーブルから生徒氏名を選び、ウィザード任せにフォームを作りました。 このとき、できたフォームで出席番号を入れると何もしないのに、自動的に生徒氏名が入ってしまいます。 人に聞くと当たり前でしょ、みたいに言われたのですが、なんとなくわかるようでわかりません。どうして自動的に入るのでしょうか?ふりがなの自動入力みたいな設定をしたというのならわかるのですが、何もしてないのに。 すみません、自分でも、リレーションとか整合性とかについて、あるいはまだフォームとテーブルの関係について、よくわかってないせいなのだろうとは思うのですが、そこの所も合わせ、どなたか、分かりやすく教えていただけますか?宜しくお願いします。

  • Access2000の挿入方法を教えてください。

    Access2000を使用。 「社員テーブル」(社員コード、氏名、資格コード) 「資格テーブル」(資格コード、資格名) 「入力フォーム」(社員コード、氏名、資格コード) があります。 同じコード同士が関連付けしています。 フォームで資格コードと資格名を表示させたいと思っています。 表示はプロパティで連結列を使用し、表示が可能となりました。 しかし、このまま、テーブルへ挿入してもエラーが発生し、 追加することが不可能となっています。 連結列を使用せず、表示させる方法はどうすればよいのでしょうか? また、連結列を使用して追加する場合の方法はどういうのがありますか?

  • Access コンボボックスを使ったデータ入力の表示

    メインテーブルを元にフォームを表示、さらにレポートを表示させています。 メインテーブルのある項目3つは別テーブルをコンボボックスとして表示させてデータ入力するようにしてあります。 別テーブルの値はこんな感じです。 コード  名前   詳細 1     AAA   A----- 2     BBB   B----- 上記のデータをフォームで表示させる際には、コードではなく、名前が表示されるようにしてあります。 テーブルの方は 連結列は1、列数は3となっています。 なぜか項目1のみテーブルにも「名前」が表示・入力されており、他の項目2・3は「コード」が入力されています。 特別違う設定をした覚えもないのですが。。。 そしてフォームに表示されたデータをもとにレポートを作成しているのですが、やはり項目1のみが「名前」が表示されて、 他は「コード」が表示されてしまいます。項目1のみだけではなく、他も名前が表示されるようにしたいのです。 テーブルの方は別にコードのままでもかまいませんが、レポートの方だけは変更させたいです。 Access2000です。

  • Accsess テーブルを参照して別のテーブルにデータを取得する方法を教えてください

    初めて質問します。 アクセスでデータベースを作成しようと悪戦苦闘中です。 <質問> 元データとなる住所録テーブルAがあります。 テーブルBにテーブルAの情報+αのデータをフォームを使って入力したいのです。 (1)テーブルAにはコードがあり、テーブルBに入力する際に、そのコードを入力するとテーブルAからデータを取得でき、テーブルBにコピーとして取得したいです。 (2)また同じコードが複数ある場合は、別ウィンドウを 開きそこから選択してテーブルBにコピーしたいです。 (1)と(2)では方法が違うと思うのですが、どちらの場合も教えて頂けないでしょうか? DLookup関数を使うのでしょうか・・・? よろしくお願いします。

  • AccessのDLookupについて

    AccessのDLookupについての質問です。 いろいろ調べたのですがわからなかったので教えてください。 テーブル「社員」…ID、社員コード、氏名、所属、回数 フォーム…テーブルと同項目 フォームで社員コードを入力すると、自動的に氏名、所属が表示されるようにしました。 しかし、所属が変更になった社員氏名がうまく表示できません。 ~例~ ID_社員コード_氏名 _所属_回数 1_1234   _山田 _東京_1 2_1234   _山田 _東京_2 3_1234   _山田 _大阪_3 とあったときに、表示したいのはID_3のデータなのですが、ID_1のデータが表示になってしまうのです。(回数が最大の氏名、所属を表示したい) x = Nz(DMax("回数", "社員", "社員コード=" & [社員コード]), 0) Me!氏名 = DLookup("氏名", "社員", "社員コード=" & [社員コード]) _ & " and 回数=" & x) としています。エラーは出ません。 どこが変なのでしょう? よろしくおねがいします。

  • Access/選択→自動絞込み

    ある会社から事務用品を買い、社内各部署へ発送する仕事をしています。 その日ごとに発送履歴(どこから買ったどんな商品をどこへ送ったか)を残したいと思って、Accessでデータベースを作成したいのですが、なかなかうまくいきません。どうか助言をお願いします。 現在作成済みのテーブルは以下の通りです。 商品名詳細テーブル:商品番号/商品名/分類/単価/発注先 送付先テーブル:各部署の名前(営業部/経営企画部など) 注文内容テーブル:送付/注文/返品  (部署へ送ったのか,こちらから商品を注文したのか) 発注先テーブル:各事務用品会社の名前 (複数の会社から買っている) 分類テーブル:事務用品の大まかな分類(ペン、コピー機消耗品、紙、パソコン用品など) (商品名詳細テーブルより) 各商品の発注先は決まっているのですが、送付先の部署はいろいろあります。 私は以上のテーブルを使って、(フォームで) 分類をプルダウンで選択→ 自動的にその分類の商品(名,もしくはコード)のみを プルダウンで表示 (例:分類の中から「ペン」を選択→自動で「マジック」「赤ボールペン」などを 選択できるように、「はさみ」「トナー」など分類外のものを選択できないようにしたい) と言うのをやりたいのですが、わからなくて詰まっています。 あと、とあるテーブルをプルダウンにすると(リレーション設定してある) 「このコントロールは式○○に連結しているため編集できません」という表示が出て、プルダウンメニュー選択ができません。どうすればその表示が出なく、選択できるようになるのでしょうか。 とても初心者ですが、よろしくお願いします。

  • クエリからテーブルへデータを挿入する方法

    Access2000のクエリの方法。 Aテーブル(コード、期間、内容) Bテーブル(コード、内容、カウント) というものがあります。 条件構文(IIF)を使用して、カウント項目に値を入力したいと考えています。 条件として ・期間の中身が3以上 ・AのテーブルとBのテーブルの内容項目に入っている情報が一致している カウントの値を追加していく方法はありますか? あれば、その方法を教えてください。 内容がうまく説明できません。 各テーブルの項目ですが、 それぞれに違う項目もあります。 また、その他にもテーブルは存在しているため、このような書き方をしました。 ここで必要な情報だと思い、上に書いた分だけになります。 例 社員テーブル(コード、氏名、住所、作業期間、役割コード) 作業テーブル(コード、役割コード、役割内容、回数) というような状態です。