- ベストアンサー
コンボボックスのテキスト窓にデータを表示させたい
- コンボボックスを使用してフォーム入力を行う際、2段目のコンボボックスに素材名が表示されない問題が発生しています。
- 過去の入力を確認するために、2段目のコンボボックスにも素材名を表示させたいと考えています。
- テーブルとフォームの関連設定を調整し、2段目のコンボボックスに素材名を表示させたいです。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
> 入力ができません。 結合のあるクエリの結果にたいして編集できない原因としては主キーがないとかがあげられます。 テーブルを結合すると編集できないときの対処法 https://tsware.jp/tips/tips_572.htm 他にも原因がある事があると思いますので access クエリ 結合 編集できない で検索してご自身にあった情報を探してみてください。
その他の回答 (7)
- kkkkkm
- ベストアンサー率66% (1719/2589)
> データの表示がテレコ状態「(食材名)イカ → (素材名)野沢菜」で表示されました とのことですが No5の補足で頂いたデータでは 食材名ID食材名 1イカ で 素材名ID素材名食材名ID 47野沢菜16 となっていますから、データそのものが逆なのではないでしょうか。
お礼
本当にすいませんでした。この質問を締め切るときに画面上に違和感を感じたことがありました。初めての経験でしたが、締め切ると同時のタイミングで投稿があったかの様に感じたことです「その時は、締め切ったので問題ないと感じておりました。」。それはさておきまして、事務局からのメールを初めて拝見しましたのが昨日でした。諸般の事情によりご返事が今日になりまして申し訳ございません。たしかに当時、質問内容で発生した事象(表示がテレコ状態「(食材名)イカ → (素材名)野沢菜」)はありました。 そこで、アドバイス頂いていた「No4の時に書こうと思って忘れていました。> _食材名とT_素材名の食材名IDが同じなのかなども確認してください。」が気になり、次のことを実施しました。 一応主キーマークは付いていたのですが、再度付け直ししました(一旦主キーマークを外して再度付け直しました)。主キーを付け直した後でしたが、データの表示がテレコ状態「(食材名)イカ → (素材名)野沢菜」で表示されました。とりあえず、「T_食材名とT_素材名」のIDの書式を変更してみました。書式は「T_食材名に(000)を記載」「T_素材名に(0000)を記載」ですが、この後、データの表示がテレコ状態は解消いたしました。 以上で解消いたしましたので、お尋ね頂いた「> データの表示がテレコ状態「(食材名)イカ → (素材名)野沢菜」で表示されましたとのことですが、No5の補足で頂いたデータでは食材名ID食材名1イカ で 素材名ID素材名食材名ID 47野沢菜16 となっていますから、データそのものが逆なのではないでしょうか。 」につきましては、食材名IDに対する追加もあり素材名IDの一部付け直しおしました。従いまして、今、的を得た正確なお答えができません。すいません。しかし、「No4の時に書こうと思って忘れていました。> _食材名とT_素材名の食材名IDが同じなのかなども確認してください。」がヒントになって改善しましたことは事実です。 いずれにせよ、アドバイスを飛ばしてしまったことに変わりはありません。軽率に扱われたとの心証を持たれたと思いますが、決して、その様なことはありません「私自身に飛ばした認識が・・・・」。見様見真似で夢中だった為(ヒントをキャッチ・・・、手を打って改善したが何故の理由は掴めていない・・)、アドバイザー様との同調姿勢に問題があったと反省しています。 振り返っての投稿ですが、質問に正確にお答えできなくて申し訳ございません。但し、やりたいこと「やりたかったこと」は、アドバイスのお陰で成し遂げられたことは事実です。ありがとうございました。
- kkkkkm
- ベストアンサー率66% (1719/2589)
データには問題はありませんでした。レコードの移動は見ていなかったのですが、表示されないというのがリストが表示されないというのではなく、既存のレコードを表示したときに2段目のデータが表示されないということでしたら(1段目を選び直すと2段目が正常なデータで再選択が可能な場合) フォームのレコード移動時に Private Sub Form_Current() Me.Refresh End Sub もしくは Private Sub Form_Current() Me.素材名.Requery End Sub にしてみてください。
お礼
ありがとうございます。入力フォームの「素材名」コンボボックス(テキスト)に表示できました。ただひとつ、不具合がはっせいしまして困っています。すいません。
補足
ありがとうございます。入力フォーム「F_食材管理」のコンボボックス(素材名)テキスト部に問題なく素材名が表示されました。ありがとうございました。ただひとつ、別の問題が発生しまして解決できずにいます。内容ですが、昨今の世情もあり食材の在庫「特売時に購入」が増えまして、入力フォームからの遡りに時間を要することもあり、一覧フォームにて「F_食材管理在庫一覧」メンテナンスを行っていました。従来のオブジェクト構成ですと「消費日:日付/時刻型、消費:Yes/No型、廃棄:Yes/No型」に入力できたのですが、新しく完成したテーブルのオブジェクト構成ですと「消費日:日付/時刻型、消費:Yes/No型、廃棄:Yes/No型」への入力ができません。何度もご面倒をお掛けしますが、アドバイスをお願いできませんでしょうか。 [従来のオブジェクト] ・テーブル名(T_食材管理) ID:オートナンバー型 購入日:日付/時刻型 消費日:日付/時刻型 購入先:テキスト型 購入単価:通貨型 消費期限:日付/時刻型 食材名:テキスト型(コンボボックスで食材名入力:参照テーブル名=T_食材名) 素材名:テキスト型 容器姿:テキスト型 ランク:テキスト型 消費:Yes/No型(入力フォームには表示させていない :別途一覧フォーム「食材管理在庫一覧」にてメンテ) 廃棄:Yes/No型(入力フォームには表示させていない :別途一覧フォーム「食材管理在庫一覧」にてメンテ) 情報:メモ型 ・フォーム(メンテナンスフォーム) フォーム名:F_食材管理在庫一覧 レコードソース:Q_食材管理在庫クエリ(全フィールド) 抽出条件:消費「Yes/No型(No)」廃棄:Yes/No型「Yes/No型(No)」 ・運用面 フォーム名:F_食材管理在庫一覧 「消費期限(カレンダー入力)」「消費:Yes/No型」「廃棄:Yes/No型」への入力は問題なく行えました。 [新しく完成したテーブル] ID:オートナンバー型 購入日:日付/時刻型 消費日:日付/時刻型 購入先:テキスト型 購入単価:通貨型 消費期限:日付/時刻型 食材名:数値型(コンボボックスでID入力):参照テーブル名=T_食材名 素材名:数値型(食材名連結:コンボボックスでID入力):参照テーブル名=T_素材名 容器姿:テキスト型 ランク:テキスト型 消費:Yes/No型(入力フォームには表示させていない) :別途一覧フォーム「食材管理在庫一覧」にてメンテ予定 廃棄:Yes/No型(入力フォームには表示させていない) :別途一覧フォーム「食材管理在庫一覧」にてメンテ予定 情報:メモ型 ・フォーム(メンテナンスフォーム) フォーム名:F_食材管理在庫一覧 レコードソース名:Q_食材管理在庫クエリ (食材名:数値型&素材名:数値型を外した全フィールド)とテーブル(T_食材名&:T_素材名)のIDを、テーブル名(T_食材管理)の(食材名:数値型)と(素材名:数値型)細い結合線で繋ぎ、Q_食材管理在庫クエリのフィールドへ「T_食材名(食材名フィールド)&T_素材名(素材名フィールド)をドラッグする。 抽出条件:消費「Yes/No型(No)」廃棄:Yes/No型「Yes/No型(No)」 以上ですが、何度もお手数をお掛けして申し訳ございません。
- kkkkkm
- ベストアンサー率66% (1719/2589)
No4の時に書こうと思って忘れていました。 > _食材名とT_素材名の食材名IDが同じなのかなども確認してください。「下記の通りでしたのでご報告いたします」 No3での質問の仕方だと上の質問を引きずりますのでこのようになりますよね。すみません言葉が足りませんでした。 あと、細かいことにこだわったようですが、コンボボックスの項目設定が2013と違ったので項目自体が2007だとそうなるのかなぁ(マクロがかなり違ったのを思い出し)、となると考え方が変わるのかなぁとか、先に進んでこのあたりの設定が問題だったとなるのもどうかなと思ったので先に確認したものです。 バージョンが同じだと、そんな設定はないとか勘違いで書いてるとかある程度確信できるのですが、違うと分からないので…。
お礼
ありがとうございます。
補足
ありがとうございます。どうも根本的なところで躓いている様な感じがしてきました。ID「数値型」ですが以下の通りになっています。宜しくお願いします。 食材名ID 食材名 1 イカ 2 カレー 3 ごぼう 4 こんにゃく 5 サラダ 7 たらこ 8 はんぺん 9 らっきょ 10 昆布 11 加工食品 12 干物 13 煮豆 14 生姜 15 佃煮 16 漬物 17 天ぷら 18 豆腐 19 納豆 20 惣菜 21 卵 22 冷凍食品 23 カレー 24 魚 25 もずく 素材名ID 素材名 食材名ID 1 あらびきフランク 11 2 いかの天ぷら5個 22 3 イカはんぺん 8 4 イカフライ 17 5 イカ照り焼き 12 6 イチオシキムチ 16 7 イワシ甘露煮 15 8 おかか昆布 15 9 オクラ 16 10 かじりっこ 8 11 カット白菜二度仕込み 16 12 かぶと野菜 16 13 かもり 16 14 きざみ白菜 16 15 キムチ 16 16 ぎょうざ5個 22 17 きゅうり 16 18 きりこみ2個 22 19 きんぴらごぼう 3 20 きんぴらはんぺん 8 21 ごぼう巻き 8 22 こんぶ豆 13 23 ししやもみりん 12 24 たこ焼き6個 22 25 ちくわ 17 27 ナスとトマトのカレー 2 28 ニシン昆布 15 29 はんぺん 8 30 ひじき煮 15 31 ひとくちナス 16 32 ピリ辛 9 33 ピリ辛いかげそ揚げ 1 34 ピリ辛ゴマ白菜 16 35 ほうれん草玉子ロール6個 22 36 みぶな漬 16 37 めかぶ昆布朝漬け 16 38 もずく 25 39 やさい豆 13 40 やわらかイカ 17 41 ゆず大根 16 42 ゆず白菜 16 43 葉物やさい 16 44 ゆで卵 21 45 レンコンはんぺん 8 46 温泉たまご 21 47 野沢菜 16 48 各務原キムチ 16 49 丸はんぺん 8 50 牛カルビ5個 22 51 京菜カット 16 52 玉ねぎはんぺん 8 53 金時豆 13 54 黒豆 13 55 刺身こんにゃく 4 56 新キャベツ 16 57 新漬たくあん 16 59 刺身 24 60 豆乳揚げだし丸形 20 61 奈良漬 16 62 肉じゃがカレーコロッケ6個 22 63 白菜漬け 16 64 白生姜 14 65 焼き魚 24 66 たらこ 7 67 味噌カツ6個 22 68 ベーコン 11 69 じゃがいもサラダ 5 70 ちりめんじゃこ 12 以上です。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> ・T_食材名とT_素材名の食材名IDが同じなのかなども確認してください。「下記の通りでしたのでご報告いたします」 T_食材名とT_素材名の食材名IDはそれぞれのテーブルに入力されているデータの事です。クエリでは「食材名ID(データ)が同じなら」という条件ですのでそれがわずかでも違うと認識してくれません。目視だと違いが分からない場合もありますので、そのために、同じ内容のクエリを作成して実行してみれば、同じなら1段目のコンボボックスに対応した一覧が表示されるので確認できます。
お礼
ありがとうございます。何度もすいません。
- kkkkkm
- ベストアンサー率66% (1719/2589)
これも確認ですが ・コンボボックス名:食材名(参照テーブル名:T_食材名) は ・コンボボックス名:食材名(コントロールソース:食材名) ではないでしょうか。 ・コントロールソース:SELECT T_素材名.素材名ID, T_素材名.素材名, T_素材名.食材名ID FROM T_素材名 WHERE (((T_素材名.食材名ID)=[Forms]![F_食材管理]![食材名])); は ・値集合ソース:SELECT T_素材名.素材名ID, T_素材名.素材名, T_素材名.食材名ID FROM T_素材名 WHERE (((T_素材名.食材名ID)=[Forms]![F_食材管理]![食材名])); ではないでしょうか。 T_食材名とT_素材名の食材名IDが同じなのかなども確認してください。 最初に書いた方法でクエリを確認してみてください SELECT T_素材名.素材名ID, T_素材名.素材名, T_素材名.食材名ID FROM T_素材名 WHERE (((T_素材名.食材名ID)=[Forms]![F_食材管理]![食材名]));
お礼
ありがとうございます。
補足
ありがとうございます。重要度を理解できていませんでした。正確には今もできていません。すいません。 ■お尋ねの1 ・コンボボックス名:食材名(コントロールソース:食材名)ではないでしょうか。 実は、コンボボックス名:食材名(参照テーブル名:T_食材名)はクエリビルダで参照するテーブルのことです。従いまして、「コンボボックス名:食材名(コントロールソース:食材名)ではないでしょうか。」は仰られる通りです。 もうひとつのコンボボックス名:素材名(参照テーブル名:T_素材名)につきましても、同様にクエリビルダで参照するテーブルを指しています。従いまして、「コンボボックス名:食材名(コントロールソース:食材名)」になります。 ■お尋ねの2 ・T_食材名とT_素材名の食材名IDが同じなのかなども確認してください。「下記の通りでしたのでご報告いたします」 [T_食材名] SELECT T_食材名.食材名ID, T_食材名.食材名 FROM T_食材名; [T_素材名] SELECT T_素材名.素材名ID, T_素材名.素材名, T_素材名.食材名ID FROM T_素材名 WHERE (((T_素材名.食材名ID)=[Forms]![F_食材管理]![食材名])); 以上ですが、ご査収いただければと思います。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> ・コンボボックス名:素材名(参照テーブル名:T_食材名) これは入力時のタイプミスだと思ったのですが、実際にこうだとでないです。
お礼
ありがとうございます。すいませんでした。
補足
ありがとうございます。大変申し訳なく訂正させて頂きたく思います。私のタイプミスです。 コンボボックス名:素材名「値集合ソース(クエリビルダ)の参照テーブル名:T_食材名)」は間違っていました。重大なタイプミスでした。 ■正確には下記の通りになります。 コンボボックス名:素材名「値集合ソース(クエリビルダ)の参照テーブル名:T_素材名)」 お手数をお掛けしまして、申し訳ございませんでした。
- kkkkkm
- ベストアンサー率66% (1719/2589)
値集合ソースでなくてコントロールソースなのでしょうか…。 2段目コンボボックスの選択肢に何も出てこないということだとしたら、1段目の更新後処理で2段目の再クエリはしてますよね。 一度 ・クエリビルダ設定フィールド:「素材名ID、素材名、食材名ID(抽出条件:[Forms]![F_食材管理]![食材名])」 この状態のクエリを別に作成し、フォームを開いて1段目コンボボックスで何か選んでから、作成したクエリを実行してみたら結果が正しく表示されるでしょうか。
お礼
ありがとうございます。知識のレベルにせよお尋ねするに記載漏れはお恥ずかしいです。すいませんでした。
補足
ありがとうございます。一部記載漏れがありましたのでご連絡します。 [1段目コンボボックスの設定] ・コンボボックス名:食材名(参照テーブル名:T_食材名) ・クエリビルダ設定フィールド:「食材名ID、食材名」 ・書式(列数):2 ・書式(列幅):0cm;2.551cm ・コントロールソース:SELECT T_食材名.食材名ID, T_食材名.食材名 FROM T_食材名 ・更新後処理 Private Sub 食材名_AfterUpdate() Me!素材名 = Null Me!素材名.Requery Me!素材名.SetFocus Me!素材名.Dropdown End Sub 以上ですが、宜しくお願いします。
お礼
ありがとうございました。
補足
ありがとうございました。ご報告が遅れまして申し訳ござません。結果ですが、問題なく動くようになりました。アドバイスを頂戴いただきましたテーブルの主キーですが、一応主キーマークは付いていたのですが、再度付け直ししました。主キーを付け直した後でしたが、データの表示がテレコ状態「(食材名)イカ → (素材名)野沢菜」で表示されました。とりあえず、「T_食材名とT_素材名」のIDの書式を変更してみました。書式は「T_食材名に(000)を記載」「T_素材名に(0000)を記載」ですが、この後、データの表示がテレコ状態は解消いたしました。 分かったこと:データを一位の値とする為には、単純に1~連番を振るのではなくて、コードとしてとらえる必要があると思いました。お手数をお掛けしまして申し訳ございませんでした。今後、問題なく動くか心配がありましたので、旧のでーたべーすを残すことにいたしました。本当にありがとうございました。