• ベストアンサー

ACCESS2010_テーブル作成(超初心者)

現在以下のようなテーブルを作成しています。 テーブル1:名前、区分 テーブル2:名前、区分、その他データ テーブル2の名前フィールドに名前を入力すると自動的に名前に対応する区分が自動入力されるようにしたいと思っていますが、やり方がよくわかりません。access初心者です。どうかご教授願えないでしょうか?よろしくお願い致します。 尚、名前の入力はテーブル1の名前から選択するようにしました。 表示コントロール:コンボボックス 値集合タイプ:テーブル/クリエ 値集合ソース:SELECT テーブル1.名前 FROM テーブル1 ORDER BY テーブル1.名前;

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7987/21354)
回答No.1

あの・・・出来ることはできるのですが、Accessの場合それは 「邪道」です。データベースですので正規化しないと。 テーブル1:名前、区分 テーブル2:名前、その他データ にしておいて、 クエリ1:名前、区分、データ にすれば、テーブル1に名前を入れれば、クエリ1は自動的に 区分が出て来ますので、これを表示させればオッケーです。 当然「リレーショナルシップ」で「参照整合性」を指定しておく 必要がありますけどね。 もっとも、「名前」は同姓同名があるので、本来の方法は テーブル1:顧客番号、名前、区分 テーブル2;顧客番号、その他データ が正しい正規化だと思いますが・・・。

sambo007
質問者

お礼

ご回答ありがとうございます。 早速実施してみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Microsoft Access2003:コンボボックス

    Microsoft Access2003:コンボボックス Microsoft Access2003:コンボボックスで表示される値をテーブルからの値の他に、1件目を"全て"と表示させたいのですがうまくいきません。 コンボボックスの値集合ソースに select kaisya, cd from table1 order by cd UNION SELECT "全て",0 FROM table1; としているのですが、この「全て」が最初に表示されません。 cd は実際のテーブルは1001番からです。

  • Access2003でのフォーム作成についての質問

    アクセスの入力フォーム作成で2点、お尋ねしたいことがあります。 手持ちのCDに入っている曲を登録するデータベースを作っています。曲のデータが入った「Songs」テーブルには、曲名や演奏者、作者のデータが入っています。 作者は別にWriterというテーブルを作り、姓(Family_name)と名(First_name)というフィールドに登録してあります。 Songsにデータを入力する「入力」というフォームで作者名、作者姓というフィールドを作り、これをコンボボックスにして、それぞれのプロパティで値集合タイプを「テーブル/クエリ」とし、値集合ソースに 作者姓には SELECT Writer.Writer_ID, Writer.Family_Name FROM Writer ORDER BY [Family_Name]; 作者名には SELECT Writer.Writer_ID, Writer.First_Name, Writer.Family_Name FROM Writer WHERE (((Writer.Family_Name)=Forms!Songs入力!作者姓)) ORDER BY Writer.Family_Name, Writer.First_Name; と指定して見ました。 ところが、これではまず1曲目を入力したときには、作者姓も作者名もうまく行くのですが、次の曲に移り、作者が別になったときに、作者姓の方は上手く新しいものが表示できるのですが、作者名の方には前の入力で使った名前がそのまま残ってしまい、 新しい名前が入力できなくなります。どこを改善すればこの現象をなくせるでしょうか? 次は2つめです。曲を入力していると、1枚のアルバムは通常同じアーティストになります。そこで前のレコードで入力したアーティスト名がそのまま次の入力画面に残るようにしたいのですが、これはどうすればよいでしょうか。 以上2点です。よろしくお願いします。

  • Accessでコンボボックスへ新しいレコードを書き込んだものを参照先のテーブルに保存したい

    たとえば [果物リスト]というテーブルがあり フィールドは「果物の名前」で20件のレコードが入ってる時 [アンケート]というテーブルの「好きな果物は?」というコンボボックスのフィールドの値集合ソースに Select 果物リスト.果物の名前 From 果物リスト と書いて選択させています。 その場合、20件登録されている果物の名前以外の レコード(新たな果物の名前)が記述された場合、 [果物リスト]テーブルの「果物の名前」フィールドに 入っているレコードを増やして21件目に登録したいの ですが、こういう場合はSelectを使うのは 間違ってるのでしょうか? 何かスマートなやり方をご存じでしたら教えてください。

  • Accessフォームでデータ入力できない(初心者)

     テーブルにて各種データを入力して、それに基づいてクリエにて数式を使って2つの値を算出。 テーブル:原価、経費、利益率、商品名 クリエ:販売価格、利益金額  テーブル、クリエのすべてのデータを使ってフォームを作成したのですが、テーブル部分のデータをフォームにて入力・編集できません。テーブルのみを使ってフィールドを作成すると入力・編集できるのですが、クリエにて作成した「販売価格、利益金額」を表示できません。  フォームにテーブル、クリエのすべてのデータを表示でき、かつフォームでテーブルデータを編集できるようにするにはどのようにしたらよいのでしょうか。  当方、Accessはほとんど初心者のようなものです。すみませんが、よろしくお願いいたします。 Win7-64bit、Access2010

  • Accessで任意のテーブルをひとつ表示させたいのですが…

    行いたい事は、年と月ごとに作成されている「テーブル」を表示させたいという事です。任意のテーブルをひとつ表示させることができればよいのです。 コンボボックスを作成することにし、任意のテーブルをひとつ選択・表示させることを考えました。「値集合ソース」を「テーブル/クエリ」に設定し、「値集合タイプ」を先述のテーブルの任意のテーブルのひとつを設定し、マクロビルダの「アクション」に「テーブルを開く」とし、テーブル名入力欄に「値集合タイプ」で設定したテーブル名を設定しました。確かにこのテーブルは表示されますが、 (1)コンボボックスの、選択を促す下矢印を押下すると表示させたいフィールドがテーブルの左から2番目にあるのですが、このフィールドではなく最初のフィールド(オートナンバー)が表示されてしまう。 (2)コンボボックス内は空欄であって欲しいのに、選択したオートナンバーが黒の反転点滅表示してしまう。 (3)一番行いたい、任意の年と月で作成されたテーブルを選択させる表示ができない。 と、以上が現状です。 良きアドバイスをお待ちしております。 宜しくお願い申し上げます。

  • アクセス初心者です。

    アクセスのフォームについてです。番号を選ぶとリスト表示がでてきて自動的にテキストに文字列が入るように作ったのですが、思うようにいきません。 コンボボックス 名前     cmb_コード 列数     2 値集合タイプ テーブル/クエリ 値集合ソース T_ 納品物コード 列幅     2;4 連結列    1 で、テキストフィールドに[cmb_コード].column(1) としました。 コンボボックスに2列分のデータが出てくるのですが、列数も2列分表示されるのですが、コンボボックスの2幅ぶんでしか見れません。上下左右ともスクロールが表示されています。左右スクロールを表示しなくても2列分のデータが見れるようにしたいのですが、どのようにすればいいのでしょうか?別項目はきちんとできているのですが、この部分だけできません。見比べたのですが、違いが分かりません。よろしくお願いします。

  • ACCESSのフォームとテーブルの連携について

    ACCESSのフォームとテーブルの連携について 説明がややこしくて大変申し訳ないのですが、教えてください テーブルが1つあります。 そのテーブルを元にフォームが作成されています。 そおフォームの一つのフィールド((コンボボックス)→[テスト]フィールド名とします)でOK と NG と選択できるように値集合ソースを設定しています。 そしてここからが本題なのですが、 そのフォーム上では使用しない(見せたくない)フィールド([いろは]フィールド名とします。)がテーブルに1つあるのですが 例えばフォームの[テスト]に仮に OK と選択して保存したら、 テーブルの[いろは]に 快調 と自動反映させることは可能でしょうか?

  • ACCESSで質問です

    ACCESSで質問です。 利用するのは  フォームZ  フォームZ内にコンボボックスA、コンボボックスB  商品テーブル  部門テーブル  振分テーブル  詳細テーブル になります。 やりたいこと (1)コンボボックスA、コンボボックスBがあるフォームZで、コンボボックスAで選択した値を元にコンボボックスBの値を絞りたいです。 (2)変更した値がフォームZを開いた時に表示されるようにしたいです。 現在の設定 フォームZはデータを更新する画面で、コントロールソースで商品テーブルの各項目に値を読み込ませています。 この時、コンボボックスAは商品テーブルに登録済みの部門テーブルの区分を、 コンボボックスBは商品テーブルに登録済みの詳細テーブルの保障を表示させるようにしたいです。 現在うまくいかない点 コンボボックスBに登録済みの初期値が反映されません。 各テーブルの中身は以下の様な感じで、部門テーブルのIDが振分テーブルのIDとリンクし、 振分テーブルのNoが詳細テーブルのNoとリンクしています。 部門テーブル(コンボボックスA)  ID(1カラム目):区分(2カラム目)  1:テーブル  2:チェア  3:ソファ  4:テレビ台  5:本棚 振分テーブル  ID(1カラム目):区分(2カラム目):保障(3カラム目):No(4カラム目)  1:テーブル:1年:1  1:テーブル:2年:2  1:テーブル:3年:3  1:テーブル:5年:4  1:テーブル:10年:5  2:チェア:1年:1  2:チェア:2年:2  2:チェア:3年:3  2:チェア:5年:4  2:チェア:10年:5  3:ソファ:1年:1  3:ソファ:2年:2  3:ソファ:3年:3  4:テレビ台:1年:1  4:テレビ台:3年:3  4:テレビ台:5年:4  5:本棚:1年:1  5:本棚:5年:4  5:本棚:10年:5 詳細テーブル(コンボボックスB)  No(1カラム目):保障(2カラム目):金額(3カラム目)  1:1年:10,000  2:2年:19,000  3:3年:24,000  4:5年:35,000  5:10年:50,000 コンボボックスA  コントロールソース:区分  値集合タイプ:テーブル/クエリ  値集合ソース:SELECT 区分,ID FROM 部門テーブル  列数:2  列幅:2;0 コンボボックスB  コントロールソース:保障  値集合タイプ:テーブル/クエリ  値集合ソース:SELECT 保障,金額,No FROM 詳細テーブル  列数:3  列幅:1;3;0 どなたかご教示頂けないでしょうか。 宜しくお願い致します。

  • フォームのコンボボックスのチェンジイベントがエラー

    フォームのコンボボックスのチェンジイベントがエラーになってしまいます フォームのコンボボックスで値が変更するたびに コンボックスのリストを絞り込むようにしたいので フィールド1 1111 1112 1113 1211 1212 フォーム1を作成しコンボボックスを設置し 値集合ソースを SELECT テーブル1.フィールド1 FROM テーブル1 WHERE (((テーブル1.フィールド1) Like "*" & [テーブル1]![フィールド1] & "*")); として コンボボックスの変更時イベントに Private Sub コンボ0_Change() Form_フォーム1.コンボ0.Requery End Sub としました。 そしてこのコンボボックスに 「2」というように値を入力すると 「実行時エラー '2118' "Requery/再クエリ"アクションを実行する前に、カレンとフィールドを保存する必要があります。」 となってしまいます。 やりたいことは コンボボックスに「2」を入力すれば テーブル1の「2」が含まれるものが抽出され 1112 1211 1212 がコンボボックスの ▼マークをクリックした後のリストに表示されるようにしたいのですが どうすればいいでしょうか? よろしくお願いします。

  • MS ACCESS2000で値集合ソースを書き換えないように。

    あるレコードのあるフィールドに、他のテーブルを値集合ソースとして、コンボボックスを設定しました。 あるとき、このフィールドの値を書き換えようとしたら、値集合ソースのテーブルのレコードを書き換えてしまいました。この値集合ソースを書き換えないようにするにはどうしたらいいでしょうか?

子機の交換に関する質問
このQ&Aのポイント
  • BROTHER 増設子機 BCL-D100WHはMFC-650CDに適合するか相談したい
  • パソコンやスマートフォンのOSや接続方法、関連ソフト・アプリ、電話回線の種類などの環境情報を教えてください
  • ブラザー製品に関する質問
回答を見る

専門家に質問してみよう