• ベストアンサー

アクセスのコンボボックスの内容が消えてしまいます

入力フォームでサブフォームを作り、そこに設置したコンボボックスA,Bという2つの連鎖したコンボボックスがあります。 1つ目(1行目)を入力すると正常に動くのですが、2つ目のレコードに進み同様に入力していくと、1つ目のコンボボックスBの内容が消えて、2つ目のコンボボックスBが正常に表示します。 どうすればレコードが複数進んでも、コンボボックスBの内容が消えないようにできるのでしょうか?

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

> 第1のコンボボックスで分類を絞込みし、第2のコンボボックスで詳細を選択するようにしています。 という事であれば、コントロールを重ねる技を使う事になると思います。 文章だけでは伝えにくいので、以下を参照してみてください。 (サンプルファイルをダウンロードでき、動きを確認できます) 帳票フォームの複数コンボボックスで絞り込み http://hatenachips.blog34.fc2.com/blog-entry-73.html

acchandesu
質問者

補足

ありがとうございます。 まさにそういうことを言いたかったんです。 教えていただいたサイトで勉強してみたいと思います。

その他の回答 (1)

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.1

質問詳細を追加してください。 レコードソースについて メインフォームのレコードソース、サブホームのレコードソース、コンポボックスのレコードソース これらのソースのリレーションシップ 2つのコンボボックスの元になっているレコードソースはどのようなものですか 1.別々のもので、それぞれ独立している 2.別々のもので、第2のコンボボックスはは同じものは第1の第一のコンボボックスで絞り込み (例:第1はかな文字で第2は氏名) 3.同じもの 3.の条件で試してみましたがおっしゃるような現象は起こりません。

acchandesu
質問者

補足

レコードソースは、それぞれのテーブルです。(答えになっていないかも) リレーションシップは、このコンボボックスが、別に作成したテーブルにつながっているだけです。 第1のコンボボックスで分類を絞込みし、第2のコンボボックスで詳細を選択するようにしています。 (例:第1はくだもの、第2はりんご・みかん・ぶどう) (例:第1はやさい 、第2はきゅうり・きゃべつ・にんじん)

関連するQ&A

  • Access コンボボックスへのレコードの更新

    サブフォームにコンボボックスを設置しており、リストに無い場合に追加登録するためのフォームを開くボタンを作ってあります。 このボタンからフォームを開き追加して閉じたあと、メニューのレコードの更新をしないと元のサブフォームのコンボボックスに反映されません。 自動ですぐに反映させる方法、またはレコードを更新するボタンの設定方法を教えて下さい。 宜しくお願い致します。

  • Accessのコンボボックスの表示について

    今 Access2000で作っているのですが、 フォームにサブフォームを帳票フォームの中に 二つコンボボックスがあります。 そしてコンボボックス1を選ぶと 2のボックスに抽出されたリストが表示されて その中から選ぶ形になっているのですが、 サブフォームに2件目を入力すると1件目の ボックス2の中の表示が消えてしまいます。 そして1件目のボックス2にカーソルを置くと表示 されるのですが、次は2件目のボックス2が消えてしまいます。データ的には問題ないようなのですが、 なぜ、消えてしまうのでしょうか? 1、2とは別にコンボボックスが3つあります。 表示するものが多すぎるのでしょうか? よろしくお願いします。

  • 【Access】サブフォームのコンボボックス連携

    ACCESSで社員の資格情報を入力するシステムを作成したのですが 以下の問題を解決できず困っています。 どうすればいいか お力を貸して頂けないでしょうか? ■問題:メインフォームで別レコードに移動した際 サブフォーム内の連携コンボボックスを更新されない □コンボボックス2の表示項目 1.分類別No 2.資格名ID 3.資格名 3のみを表示していますが、 1つ目のコンボボックス1の数値で 全コンボボックス2の資格名が出てしまいます。 ■フォーム構成 メインフォーム内に以下を設置 1.移動ボタン 2.帳簿サブフォーム □サブフォーム構成 レコード1 コンボボックス1 コンボボックス2 レコード2 コンボボックス1 コンボボックス2 ~~ 最終レコード コンボボックス1 コンボボックス2 ■コントロールソース コンボボックス1:大分類ID コンボボックス2:資格名ID ■テーブル構成 資格名  資格名ID(主キー)  大分類ID  分類別ナンバー(大分類ごとの登録順ナンバー)  資格名   資格大分類  大分類ID(主キー  大分類名 (IT系・運転系など) ■コンボボックス2の値集合ソース(表示項目:資格名) SELECT 資格名.資格名, 資格名.分類別No, 資格名.資格名ID FROM 資格大分類 INNER JOIN 資格名 ON 資格大分類.資格大分類ID = 資格名.資格大分類ID WHERE (((資格名.資格大分類ID)=[Forms]![メインフォーム]![サブフォーム]![コンボボックス1])) ORDER BY 資格名.分類別No; ------------------------------------ サブフォームに記載し効果のなかったVBAコード ’再クエリ Private Sub Form_Current() Dim cntrl As Control If Not IsNull(Me![コンボボックス1]) Then For Each cntrl In Form.Controls If cntrl.ControlType = acComboBox Then cntrl.Requery End If Next cntrl End If End Sub ’ソース更新 Private Sub Form_Current() With Forms!メインフォーム名!サブフォーム名!コンボボックス2 .RowSource = .RowSource End With End Sub ■参考サイト 'サブフォーム内での2つのコンボボックスの連動について 'http://goo.gl/nfvxW '~ '>   コンボボックスAの更新後処理イベントに '> Me!コンボボックスB.Requery '> 'Me.コンボボックスB.RowSource = Me.コンボボックスB.RowSource '数値でコンボボックス選択 'http://goo.gl/ovZ3C 'リストボックスの行を選択するときは、「Selected(n)」を使います 'http://goo.gl/RbsWX 'サブフォームの指定 ' =Forms!フォーム名!サブフォームコントロール名.Form.テキストボックス名 'http://goo.gl/vKxtj

  • テキストボックスとコンボボックス

    こんにちは、Accessのフォームにテキストボックスとコンボボックスを設置して、以下のような事ができないかと悩んでおります。 フォーム内には、テキストボックスとコンボボックスが設置してありまして、コンボボックス内にDB(会社名テーブル)から取得した全ての会社名が入っています。 しかし、そのレコード数が300件近くあるため、コンボボックス内から探し出すのに手間が掛かります。 そこで、コンボボックスの隣にテキストボックスを設置し、テキストボックス更新後に会社名テーブルの検索を行い、条件に合った会社名だけをコンボボックス内に入れることを考えているのですが、上手く行きません。 動作のイメージとしては下記のようになります。 (1)初期表示時はテキストボックス内に何も入力されていないので、全レコードがコンボボックス内に表示される。 (2)テキストボックスに「有限」と入力して、テキストボックスからフォーカスを移動させると、コンボボックス内に「有限」が会社名に含まれているレコードのみが入っている。 (3)テキストボックスを空白に戻すと、コンボボックス内には全レコードが表示 以上、どなたかご教授よろしくお願いします。

  • コンボボックスの抽出条件でカレントレコードだけ

    コンボボックスでカレントレコードに表示している商品IDに対応する値を表示させたいのですが、教えてください。 表形式のサブフォームにコンボボックスを設置しています。(レコードごとにコンボボックスがある) 値集合タイプはテーブル/クエリ、値集合ソースはクエリビルダで作成しようと思っています。 クエリビルダにはコンボボックスに表示したい別テーブルのフィールドを入力しています。 そこで、サブフォームのカレントレコードに入力した商品IDで絞込みを行うため、商品IDの抽出条件に[Forms]![frm出庫]![frm出庫商品].[Form]![商品ID]と記入したのですが、実行してみると、一行目のレコードのときはいいのですが二行目三行目のレコードの入力時もどうしても表示中の一行目のレコードの商品IDでの絞り込みしかしてくれません。 おそらくクエリの中のどこかにカレントレコードの商品IDを見るよう指定しなければいけないのだと思うのですが、その方法が分からず行き詰っています。 どうぞ宜しくお願い致します。

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

    ACCESSでコンボボックスを使っているときに たまに入力できなくなってしまう時があり困っています。 例えばA,B,Cという3つのデータを選択できるコンボボックスがあり、 現在、Aが選択されていてBに変更しようとした時に コンボボックスの表示部分が突然空欄(または選択されているのに表示されていない)になってしまいます。 その後、どれを選択してもコンボボックスには何も表示されなくなってしまいます。 この現象が起こるとなぜか同じフォーム内のボタンなどにも不都合が起こるようになってしまいます。 (テキストボックスのデータを削除するボタンがあるのですがおしてもなにも起こらなくなってしまいました) いろいろ試しているのですが全く原因がわかりません。 どのようなところに原因がありそうかなどあれば教えてください。 宜しくお願いします。

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

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

  • ACCESS コンボボックスで選択した項目の内容をクエリで抽出

    今フォームの中にサブフォーム(クエリ)を入れようと思っているのですが、なかなかできません。 ・フォームを開く ・フォームのコンボボックスでテーブルの内容を選択 ・その内容をクエリで検索し抽出 ・そのクエリをサブフォームに表示

  • コンボボックスで選択実行後、次を選択

    いつもお世話になっていますm(__)m オフィス系で回答を得られなかったため あちらを削除してこちらに移動してきました。 アクセス2000で在庫管理・発注書フォームを作っているアクセス初心者です。 発注書フォーム内で サブフォームの発注明細に入力するため、 メインフォームで連動するコンボで、絞込みをしながら商品を選択 (大項目・中項目・小項目と3つのコンボで商品を絞込み)すると サブフォーム内のコンボボックスに小項目まで絞り込まれた商品数点が表示され、(4つめの絞込み) そこで選択すると、 見た目一行の状態で(1レコード)、 IDや単価などの詳細がそれぞれのテキストボックスに表示、 数量を選択するとこの商品の小計金額を表示するという形になっています。(意味が伝わるでしょうか。。?^^;) 最後の項目まで行き、enterキーを押すと 次の新規レコード(2行目)に移動するのですが そこで、大項目のコンボボックスから選択しようとすると 最初のレコード(1行目)に戻ってしまいます。 理想としては商品を選択し、数量など最終項目まで入力してenterキーを押すと、 次の行(次のレコード)に移動すると同時に メインフォームのコンボボックスが空白の状態になって また再度選択したものが2個目のレコードに反映される。。 という形にしたいのですが どうもうまくいきません。 説明がうまくできなくて恐縮ですが どなたかご教授のほどよろしくおねがいします。。

  • コンボボックスの値が消えてしまいます。

    コンボボックスの値が消えてしまいます。 フォーム(1)にコンボボックスA(値集合ソースはテーブル1)があります、この リスト外入力時で別フォーム(2)(レコード追加用)を開きテーブル1にレコードを追加、 フォーム(2)を閉じる時にコンボボックスAをリクエリかけてフォーム(1)に戻るとコンボボックスAが空になっているのでリストを開き選択し直さなければいけません! フォーム(1)に戻った時コンボボックスAに入力した値を選択させておくにはどの様にすれば良いか アドバイスよろしくお願いいたします。 WIN XP ACCESS 2003で作成しています。

専門家に質問してみよう