Accessのコンボボックスを使ったデータ入力で不具合が生じた原因と対策方法

このQ&Aのポイント
  • Accessにおいて、コンボボックスを使ったデータ入力で不具合が生じました。
  • 材料分類の”材料分類名”をコンボボックスで選択後、該当する材料の”名称”をコンボボックスで選択し”分量”を入力する形式にしたいです。
  • 入力を行うたびに、T_材料内に入力した食品のデータが追加される現象が出ました。何が原因だったのか、対策方法をご教授お願いします。
回答を見る
  • ベストアンサー

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

誤って質問締め切ってしまいましたので、再度内容を修正の上質問させていただきます。 Accessにおいて、コンボボックスを使ったデータ入力で不具合が生じました。 以下のデーターベースを使用します。 ①テーブル:T_材料   フィールド:材料コード、材料分類コード、名称(材料名) ②テーブル:T_材料分類  フィールド:材料分類コード、分類名 ③テーブル:T_レシピ内容  フィールド:ID、料理コード、材料コード、分量 ④テーブル:T_料理  フィールド:料理コード、名称(料理名) ⑤クエリ:Q_レシピ入力用 SELECT T_レシピ内容.ID, T_レシピ内容.料理コード, T_材料.材料分類コード, T_レシピ内容.材料コード, T_材料.名称, T_レシピ内容.分量 FROM T_材料 INNER JOIN T_レシピ内容 ON T_材料.[材料コード] = T_レシピ内容.[材料コード] ORDER BY T_レシピ内容.料理コード, T_レシピ内容.分量; メインフォームにT_料理にして、レシピを入力するためにQ_レシピ入力用のサブフォームを作成しました。 材料分類の”材料分類名”をコンボボックスで選択後、該当する材料の”名称”をコンボボックスで選択し”分量”を入力する形式にしたいです。 ”材料分類”のコンボボックスは、T_材料分類、材料分類コードをコントロールソースで設定、材料名を表示しています。[更新後処理]は以下の通りにしました。 Me!名称.Requery ”名称”のコンボボックスは、T_材料をコントロールソースして、以下の値集合ソースにしました。 SELECT T_材料.名称, T_材料.材料分類コード FROM T_材料 WHERE (((T_材料.材料分類コード)=[Forms]![F_レシピ登録M]![F_レシピ登録S]![材料分類])); 以上の設定でコンボボックスは成功しましたが、入力を行うたびに、T_材料内に入力した食品のデータが追加される現象が出ました。 長文で恐縮ですが、 何が原因だったのか、対策方法をご教授お願いします。

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.16

おはようございます。前回の続きです ★材料分類コードを追加する  ①レシピ登録明細  ②フォームデザイン  ③既存のフィールド追加:④のフィールドが表示される  ④フィールドリスト:材料分類コードを選択してマウスカーソルを詳細の右端へドラッグ

matsume_02
質問者

お礼

長期間にわたりに有難うございました。

その他の回答 (15)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.15

>ボックスが”非連結”と表示されますが ★この現象はボックスを追加したときに発生します  ・ボックス名はプロパティシートのその他タグの名前行  ・フィールド名はプロパティシートのデータタグの   コントロールタグ行  ・フィールド追加のときは、フォームデザインリボンの   既存のフィールド追加ツールより  ※ラベルの表示は少し違って、書式タグの標題行 >No.13の方法でよろしいのでしょう  これでよいのですが、  オートナンバー型の分類コード順でなく【T_材料.名称】にしては --------------------------------------------------------------------------- SELECT T_料理内容.*, T_材料.名称 FROM T_材料 INNER JOIN T_料理内容 ON T_材料.材料コード = T_料理内容.材料コード ORDER BY T_材料.名称;

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.14

>以下のSQLで行いましたが、表示されませんでした。  非連結のコンボボックスでよろしいのでしょうか。 ★表示されないのは分類名ですね  ・T_材料分類をルックアップしたT_材料.材料分類コードを配置します  ・クエリのテーブルはT_材料とT_料理内容だけです

matsume_02
質問者

お礼

度々申し訳ございません。 >・T_材料分類をルックアップしたT_材料.材料分類コードを配置します ボックスが”非連結”と表示されますが、No.13の方法でよろしいのでしょうか。 >・クエリのテーブルはT_材料とT_料理内容だけです クエリについては以下のSQLでよろしいでしょうか。 SELECT T_材料.材料分類コード FROM T_材料 INNER JOIN T_料理内容 ON T_材料.材料コード = T_料理内容.材料コード;

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.13

>SELECT T_料理内容.*, T_材料.材料分類コード, T_材料.登録日  FROM T_材料 INNER JOIN T_料理内容 ON T_材料.材料コード = T_料理内容.材料コード  ORDER BY T_材料.材料分類コード; ★これはサブフォームのクエリのSQLビューですねこちらでも同じです  1.T_料理内容の【ID】フィールド除去しましたか  2.【料理コード】と【材料コード】セットで主キーにしましたか  3.ルックアップについて触れておきます   ①テーブルのデザインビュー   ②ルックアップへの切り替え   ③テキストボックスボックスをコンボボックスに変更   ④先ず項目を選択→右端の【…】でクエリビルダ起動   ⑤連結列:リレーションシップ項目のフィールドの位置【料理コード】   ⑥列数:=表示対象の数 通常2 (料理コードと名称)   ⑦表示列幅 ;区切りで㎝、非表示のときは0   ⑧リスト幅:自動はボックス幅、⑦の合計

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.12

【食品】レシピ登録の料理コードはオートナンバ型ですね 新規登録のとき入力出来ず、名称に入力するとコードが自動で採番されます オートナンバの所以です。このボックスを除去したのが添付図です ※テーブルデザインビューのルックアップは選択クエリビルダです  この選択クエリビルダはフォームデザインビューにもありますので  私は単独での作成はほとんどありません

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.11

>入力を行うたびに、T_材料内に入力した食品のデータが追加される現象が出ました。 提示頂いた添付を観ています 1.T_材料  ・名称のインデックスプロパティを重複無しに  ・名称を1行上げる    T_レシピ内容.材料コードでのルックアップ定義の為  ・T_材料分類へのリエーション不要 2.レシピ内容  ・IDを外す  ・料理コードと材料コード セットで主キー    料理コードクリック、材料コード右クリック主キー 3.単票形式の食品レシピ登録フォーム帳票形式に変更  デザインビューで  ・料理情報サブフォームをフォームフッターに移動  ・詳細内のボックスを横1列に  ・詳細枠の高さを低く  ・フォームプロパティの書式タグの2行目の単票を帳票に  

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.10

回答№9の最終行の手前「F_発注登録明細」を「F_レシピ登録明細】に[ 次回【F_発注登録】に【分類名】を追加を「F_レシピ登録明細」【分類名】を追加 度々ミス申し訳ございません。 ★各テーブル名の先頭  T_トランザクションテーブ  M_マスターテーブル  S_参照テーブル これに習ってF_フォーム、R_レポーット 次のテーブルをレコードソースとして帳表形式の作成手順は省きます ・T_分類→F分類 ・M_食材→F_食材 M_レシピ→F_レシピ登録明細】をサブフォームにする処理があるので別に説明します。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.9

★今回は【M_レシピ明細】レコードソースとして帳表形式の  【F_レシピ登録明細】の作成の手順です   ※【F_レシピ登録】のサブフォームとする為  ナヴィゲーション内の【M_レシピ明細】にマウスカーソルを移動 →【複数のアイテム】  2ステップで【M_レシピ明細】が開いています →【空白部分を右クリック】  フォームデザインの画面になり、リボン列が変わり、  配置リボンが表示されました  ここで次のツールをクイックアクセスツールバーに追加 ・配置リボンのサイズ/間隙ツールの【自動調性】  【高いコントロールに合わせる】【低いコントロールに合わせる】  【広いコントロールに合わせる】【狭いコントロールに合わせる】 ・配置リボンの配置の【左】【右】【上】【下】 ・配置リボンの配置の【スペースの調整】 →【フォームヘッダーの枠の左辺上側クリック】→【Deleteキー】  ∵フォルダーのインデクス同じの為 →【フォームフッタのIDの下から上へドラッグして、  IDのテキストボックスとラベルボックスをアクティブに】 →【Deleteキー】  ∵IDはオートナンバー型の為表示不要 →【フォームヘッダ枠の左辺の上から下までドラッグ】  ボックス全てがアクティブになる →【スペースの調整の右のv:】→【なし】   添付図 →【フォームデザインビュー終了】→【はい】 →【「F_発注登録明細」と入力】 →【OK】 ------------------------------------------------------------------- 次回【F_発注登録】に【分類名】を追加

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.8

>分類名 ★分類名の表示は、【M_レシピ明細】に関連付けられた【M_材料】の【分類ID】をクエリに配置し【F_レシピ登録明細】に配置します.

matsume_02
質問者

お礼

ありがとうございます。 以下のSQLで行いましたが、表示されませんでした。非連結のコンボボックスでよろしいのでしょうか。 SELECT T_料理内容.*, T_材料.材料分類コード, T_材料.登録日 FROM T_材料 INNER JOIN T_料理内容 ON T_材料.材料コード = T_料理内容.材料コード ORDER BY T_材料.材料分類コード;

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.7

番外です ★よく使うツール【複数のアイテム】をクイックアクセスツールバー  に追加配置  ①【作成リボン】  ②【その他のフォーム】  ③【複数のアイテム】  ④【クイックアクセスツールバーに追加】 ★クイックアクセスツールバーを下に表示する  表示幅が広がる ★リボンを折りたたむ

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.6

今晩はお待たせしました。 見当はずれを覚悟で、発注システムを作りました 添付はサブフォームを持つ帳票形式のフォームです 左辺のレコードセレクタが黒色のサブフォーム ・サブフォームをフォームフッタに配置する事でこのような事が可能 ・ルックアップにより、コードの管理は不要 ・とはいえ発注№に郵便番号のような定型入力 (データ形は半角英数字のテキスト形 ・ここでは発注№順に表示 全てのリレーションシップが参照整合性にすためにリンクする  フィールドのインデックスを重複なしにするために 空のAccessファイルに今のファイルをインポートします。 空のファイル作成時にファイル名枠の下で種類を選択選択出来ます ・Access2007-2016形型式データベース(*.accdb) ・Access2000形式データベース(*.mdb) ・Access2002-2003形式データベース(*.mdb) 今のファイルの拡張子はどれですか インポートの流れ 【外部データ】→【新しいデータソース】→【データベースから】 →【データベースから】→【Access】→【旧ファイルを選択】→【OK】 →【テーブルタグ】→【すべて選択】→【オプション】 →【テーブル構造のみ】 →【他のタグはすべて選択】→【OK】

この投稿のマルチメディアは削除されているためご覧いただけません。

関連するQ&A

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

    Accessは初心者です。宜しくお願いします。 コンボボックスを使ったデータ入力で不具合が生じました。 以下のデーターベースを使用します。 ①テーブル:T_食品   フィールド:食品コード、分類コード、食品名 ②テーブル:T_食品分類  フィールド:分類コード、分類名 ③テーブル:T_材料  フィールド:コード、食品コード、分量 ④クエリ:Q_材料入力用  フィールド:コード(T_材料)、食品コード(T_材料)、分類コード[T_食品]、食品名(T_食品)、分量(T_材料) ※食品コード、分類コードはリレーションシップしてあります。 料理のレシピを入力するために、レコードソースがQ_材料入力用の”材料入力”の帳票フォームを作成しました。 理想としては、食品分類の”分類名”をコンボボックスで選択後、該当する食品の”食品名”をコンボボックスで選択します。そして”分量”を入力する形でした。 ”分類名”のコンボボックスは、T_食品分類をコントロールソースで設定を行い、[更新後処理]は以下の通りにしました。 Me!食品名.Requery ”食品名”のコンボボックスは、T_食品をコントロールソースして、以下の値集合ソースにしました。 SELECT T_食品.食品名, T_食品.分類名 FROM T_食品 WHERE (((T_食品.分類コード)=[Forms]![材料入力]![分類名])); 以上の設定でコンボボックスは成功しましたが、入力を行うたびに、T_食品内に入力した食品のデータが追加される現象が出ました。 何が原因だったのか、対策方法をご教授お願いします。

  • ACCESS2000 コンボボックス

    こんにちわ。 コンボボックスを教えて下さい。 テーブル T_分類(1) ・分類(1)  オートNo ・分類(1)名 テキスト テーブル T_分類(2) ・分類(2)  オートNo ・分類(1)  数値 ・分類(2)名 テキスト 2つのテーブルを作成して、フォームも作成しております。 入力する時、分類(1)も(2)テキストボックスで選ぶようにしています。 それで、分類(1)を選ぶと、分類(2)のテキストボックスに分類(1)の分しか表示しないようにしたいのですが・・。 どのようにすればよいでしょうか? 初心者な者で、分かりやすく教えていただければ有りがたいです。

  • accessのコンボボックスのことで質問です。

    accessを勉強しているのですが、ちょっとしたことで分からなくなってしまいました・・。 質問の内容なのですが、まずフォーム上にコンボボックスAとコンボボックスBを配置するとします。 レコードソースには仮に[情報テーブル]というテーブルが選択されているとします。 コンボボックスAには[情報テーブル]のフィールド名が、 例えば[顧客NO]、[商品]、[値段]というフィールド名が入っているとし、フィールドにはそれぞれ10件ずつデータが入力されています。 そしてコンボボックスAで[顧客NO]を選択するとコンボボックスBに[顧客NO]の10件のデータが挿入され、選択できるようにしたいのです。 他のフィールド名を選んだときにも同じようにコンボボックスBにフィールドのデータが入るようにしたいと思っています。 コンボボックスAにテーブル名を入れることはできたのですが、 コンボボックスAで選択されたフィールドのデータを、コンボボックスBで選択できるようにするというやり方がわからないのです・・。 accessは2002を使っています。 よろしくお願いします。

  • Accessコンボボックスについて(初心者)

    例えば以下のような2フィールドのテーブルがあり 商品コード 商品名 1111  パソコン   ・     ・   ・     ・ フォームでひとつのコンボボックスを作る際このテーブルを参照し、2フィールドとも表示され、なおかつ入力出来るようにしたいのですが・・。 表示はするものの入力となると商品コードのフィールドのデータしか入力出来ません。 要は商品コードを入力すれば同じレコードの商品名が入力出来るようになれば良いので、別のやり方があればかまわないのですが・・。 良きアドバイスをお願いします。

  • コンボボックスでデータ入力

    Access 2000 フォームにコンボボックスとテキストボックスを配置しています。 コンボボックスには種別[A][B][C]を選択できるようにし、 テキストボックスには納期日の「年」「月」「日」の3つのテキストボックスを 配置しました。 「種別」「納期日」を入力後、実行ボタンをクリックすると テーブル「T_商品」の種別フィールド、納期日フィールドに NULL値のフィールドに一括でデータを入力したいと考えております。 どのようにすればいいのでしょうかよろしくお願いします。

  • ACCESS2000 コンボボックスによるデータ入力

    2つのテーブルがあります。 1つのテーブルは、顧客テーブルとし「氏名」「住所」「TEL」「担当者」とします。 もう1つは、担当者テーブルとし「ID」「担当者」 フォームで、 1つめの「担当者」のところをコンボボックスにしました。 プロパティは、 コントロールソース→担当者 値集合タイプ→テーブル/クエリ 値集合ソース→担当者テーブル としました。 顧客テーブルの「担当者」フィールドは、担当者テーブルから取得したいの です。 しかし、フォームで開きコンボボックスで値を変えようとしますが、 データが固定していて顧客テーブルに入力されません。 ほかのボックスは入力OKです。 リレーションは、担当者フィールド同士で設定してもしなくても 入力は可になりません。 状況がつかみづらいですが、わかる方教えてください。

  • ACCESS97のコンボボックスについて

    入社して、名刺を貰う機会が多い為、名刺を管理するものを初歩的な参考書を見てACCESS97で作りたいと思います。テーブルで数名の氏名・会社名・部署名・役職・住所を作りました。良く分からなかったので、この1つのテーブルを基にパラメータを使って検索する「検索用画面」と新しいレコードが表示される「新規入力画面」をクエリーとフォームを別々に作りました。検索用画面は、これで良しとします。しかし、新規入力画面は、同会社名が多いので、コンボボックスを作り今まで登録したものからも選べる様にもしたいです。新しいレコードでは、表示されませんが、▼で前のレコード(既に入力してあるデータ)に戻ると、エラーメッセージで「このフィールドに入力した値が不正です。例えば、数値型のフィールドに文字列を入力しました。」と出てきてしまいます。コンボボックスいうのは、コンボボックスウィザードで「テーブルまたはクエリーを表示する」を選び、表示させたいものを選ぶだけでは、いけないのでしょうか・・。くだらない質問で申し訳ありませんが、回答の方宜しくお願いします。

  • Accessのコンボボックスの使い方について

    初心者です。 コンボボックスの使い方について教えて下さい。 商品テーブルA 商品名|コードA|コードB|コードC| マスターテーブル A|B|商品名|コードA|コードB|コードC|D|E のような2つのテーブルを作成し、マスターテーブルの「商品名」に コンボボックスで商品テーブルAの商品名を表示させるとします。 そこでコンボボックスで商品名を選択すると同時に 商品テーブルAからほかの「コードA」「コードB」「コードC」の値を マスターテーブルの「コードA」「コードB」「コードC」に入れる方法は ありますでしょうか? また、他の方法はありますでしょうか? 宜しくお願い致します。

  • ACCESS2013 コンボボックスの警告について

    (1)コンボボックスに一度値を入力及び選択をして確定する。 (2)再度(1)のコンボボックスの内容を削除して空欄の状態に戻す。 (3)他のフィールド等にカーソル等を移すと、(2)のコンボボックスに対して警告メッセージが出でしまう。 'xxxxトランザクション.xxxxカラム'フィールドに値を入力してください。 上記(3)の警告メッセージが出ないようにしたいのですが どのように対応すればよろしいでしょうか? ※フォームはxxxxトランザクションがデータソース(ダイナセット)になっています。 ※コンボボックスはxxxxマスタテーブルが値集合(テーブル/クエリ)となっています。

  • コンボボックスを使った入力の改善

    コンボボックスを使った入力を全てのデータベースで利用しています。しかし、各コンボボックスがそれぞれ独立「単体動作」しているので、コンボボックスの初段目「最初」はレコード数が少ないのですが、2段目3段目になると選択候補が累積表示されるので、候補の数も多くなり使いづらさを感じるデータベースも増えました。この状況を改善したいと思っていますので、宜しくお願いします。尚、データベースで設定しているコンボボックス全てに言えることでもありますので、以下のケースを紹介させていただきますので、アドバイスをお願いしたいと思います。 [現状でのやり方] コンボボックス参照オブジェクトは以下の構成にて、コンボボックスは独立していて連動していません。なお、参照データの追加作業は別途作成したフォームを、データ入力フォームに配したコマンドボタンで開いて行っています。 [コンボボックス関連オブジェクト(例)] コンボボックス名:都道府県(値集合ソースで都道府県のみ選択) テーブル名:都道府県テーブル フィールド名:ID、都道府県 フォーム名(参照データ追加):都道府県追加フォーム ※「新規追加後の入力フォームへの即反映はアドバイスにより完結済」 コンボボックス名:市町村(値集合ソースで市町村のみ選択) テーブル名:市町村 フィールド名:ID、市町村 フォーム名(参照データ追加):市町村追加フォーム ※「新規追加後の入力フォームへの即反映はアドバイスにより完結済」 [改善させたいこと] コンボボックス「都道府県」で東京都を選択したとき、次のコンボボックス「市町村」では東京都の市町村だけが次の候補として表示させたいと思っています。又、現在は蓄積データの絞り込み検索で設定していますが、選択コンボボックスの次のコンボボックスを自動プルダウンさせ、候補も同時に表示させ入力できればと考えています。 以上ですが、宜しくお願いします。

専門家に質問してみよう