• 締切済み

ACCESS2003のコンボボックスで入力候補が出ません

ACCESS2003のコンボボックスで入力候補が出ません 先日似たような質問をさせていただきましたが、まだ未解決なのでまた質問させてください。 OSはWindows XP Professional SP3 です。OFFICE2003 Professional SP3 です。 Access2003 sp3 で自作した一覧フォームにコンボボックスを設定しています。 コンボボックスの値集合リストにクエリをあてています。 同じ値のレコードが多数ありますので、リスト表示が重複しないようにクエリで集計しています。 連結列は1つで単純な単語集です。経理の科目を表示しています。 そこに、データを入力しようとして途中まで入力します。例えば、”売掛”と入力した時点でリストに存在する”売掛金”が表示されます。 これは問題ないのですが、他の単語は出ない時があります。 例えば”広告”と入力した時、”広告宣伝費”という単語が登録されているのに出てきません。 調べた結果、リストにある上位50レコードまでが候補に出てきますが、51以下のレコードは出てきません。 ただし、クエリで集計などを使わない単純なリストでは、ちゃんと候補が出てきます。 クエリで集計などを行うと、コンボボックスの上位50レコードまでしか入力候補が出てきません。 ちなみに、まったく同じものをAccess2007で実行したら、ちゃんと全ての候補が出てきます。 sp3以前はこんなことはなかったように思います。 そこで、Access2003 sp3 の修正パッチをあててみたのですが変化ありませんでした。 長文で申し訳ございませんが、誰か解決方法をご存知の方がいらっしゃいましたらご指導お願いいたします。

みんなの回答

回答No.4

私も同じ現象で苦労しましたが、結局はACCESS2003のバグのようです。 マイクロソフトのサポートページです。 http://support.microsoft.com/kb/907391/ja 私は、該当のコンボボックスがフォーカスを取得したときに、イベントでopenになるようにすることでこの問題を回避しています。 ご質問からずいぶん時間が経っているのでもはや解決済みかもしれませんが、ご参考になればと思い、回答させていただきました。 しかし、こんなバグを修正してくれないマイクロソフトって、困ったものですね。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.3

不具合が特定できたものの、確かにはっきりしないですね。 最小限で絞り込みして51以上なるのでしょうか。 リストボックスはどうなんでしょうか。 再クエリ、再描画でも同じでしたか。 実現を考えると、 もう1つ選択クエリかテーブル作成を実施し、50以下に絞り込みした後で、 コンボボックスに表示、かと思われます。 もしくは、コンボボックス表示に拘らないで、 小さいポップアップフォームにでもする。

beefree
質問者

お礼

ご回答ありがとうございます。 私の表現が下手なのでうまくお伝えできていないかもしれません。 再クエリや再描画は入力が確定した後の処理になるので駄目でした。 そもそも、私の言う”入力候補”というのは、コンボボックスで出てくるリスト表示の事ではありません。したがいまして、リストはどんな場合でも表示されます。 私がお伝えしたい現象をもう少し説明させてください。 例えば、エクセルで A列に単語を縦に並べたとします。 その単語は日本語とし、同じ単語も複数あります。 そこで、A列の一番最後のセルにデータを入力するのですが、 この時、すでにA列にある単語を入力しようと途中まで入力したら A列にすでにある単語が”候補”として表示されると思います。 私の言う”候補”とはこれの事なんです。 それを、Accessのコンボボックスでやろうとしているのです。 クエリで絞り込みや合計をすると、何故かリストに表示される上位50個の単語のみが 候補として出てきます。 テーブルにあるレコードの内容はかなりシンプルにしていますが、結果は同じです。 何よりもAccess2007では、そのような現象が起こらないというのも変です。 他のPCでやってもやはり結果は同じでした。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

>コンボボックスの値集合リストにクエリをあてています。 できていることとできていないことと明確にしながら、 1つ1つ見直しし、クリアしていくこととしてください。 コンボボックスの値集合リストにテーブル(=条件無し、全件相当)をあててみてください。 それがクリアできたら、クエリにしてクエリデザインから実行する。 それがクリアできたら、コンボボックスをクエリにしてみる。 コンボボックスを操作する直前に再クエリを実行してみる。 基本的な動きと思われますので、sp3は関係ないと思いますし、 sp3対応の中にコンボボックス関連があったか確認してから実施してください。 当てたらうまくいくかも、でうまくいった試し少ないです。

beefree
質問者

お礼

ありがとうございます。 質問前にいろいろ調べていましたが、再度ゼロからテーブルを作りなおして検証してみました。 結果、テーブルに同じテキストデータのレコードがある場合 = 正常に候補で出ました。    テーブルに同じテキストデータのレコードがない場合 = 正常に候補で出ました。 重複データの有無にかかわらず正常に候補が出ました。 次に、このテーブルを基にしただけのクエリを値集合ソースに適用した = 正常に候補がでました。    このテーブルを基に集計したクエリを値集合ソースに適用した = 異常がでました。 どうも、クエリで集計すると異常が出るっぽいです。 テーブルにインデックスを設定していても変化ありませんでした。 異常時、何故かリストの並び順で50番目までは正常に候補が出てきますが、51番目以降は候補が出てきません・・・

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

補足要求。 何回も同じような質問をしているが、前とどう違うのか。前のも読んだが、くどくて、答える気がしなかった。質問の内容が判らない。 コンボボックスのアイテムに表示するところの、材料になる基データはどういうデータで、 ・抜き出し(余分なものを捨てる) ・Distinct化 (重複出現を1度の出現にする) が必要(したい)なのかな。>重複しないようにクエリで集計しています、の意味がわからない。 ーー 簡単で少数のデータ例をあげて現状と望むコンボに表示したい結果を例示してはどうですか。 コンボの表示列は複数ですか。

beefree
質問者

お礼

いろいろありがとうございました

beefree
質問者

補足

長文ですみません。現状の説明が難しくて表現に困ってます。 コンボボックスの材料になる基データは、日付データとテキストデータと数値データのテーブルです。 このテーブルには同じ値のテキストデータが複数あります。 このテーブルを基にクエリを作成して、そのクエリを値集合ソースにしています。 何故クエリを作成しているのかというと、このテーブルデータのままでは、日付が違うだけの同じ値のテキストデータが並んでしまい、選択し難いリストになってしまいます。 なので、クエリで数値データを集計してテキスト別にまとめています。 このリストの意味ですが、日常の作業としてテーブルレコードを入力して追加しています。 新規のテキストデータ(リスト外データ)が入力された場合、次回のリスト選択時にはリストに追加されているようにする為です。 コンボの表示列は1つです(テキストデータ) うまく説明できなくてスミマセン

関連するQ&A

  • ACCESS2003のコンボボックスで入力候補が出ないときがあります。

    ACCESS2003のコンボボックスで入力候補が出ないときがあります。 OSはWindows XP Professional SP3 です。OFFICE2003 Professional SP1 です。 IME はNatural Input 2003 です。IME は他にもgoogle日本語入力 や IME Standard 2003 等も使ってみましたが、変化ありませんでした。 くわしい現状は、Accessで自作した一覧フォームにコンボボックスを設定しています。 コンボボックスにはクエリで編集している(テーブルを並べ替えただけ)リストを値集合ソースに 設定しています。連結列は1つで単純な単語集です。経理の科目を表示しています。 そこに、データを入力しようと、途中まで入力します。例えば、”売掛”と入力した時点で リストに存在する”売掛金”が表示されます。これは問題ないのですが、他の単語は出ない時が あります。例えば”広告”と入力した時、”広告宣伝費”という単語が登録されているのに出てきません。 他にも出ない単語はたくさんあります。 ちなみに、まったく同じものをAccess2007で実行したら、ちゃんと全ての候補が出てきます。 これはAccess2003のバグでしょうか?どうすれば直るでしょうか?

  • コンボボックスのリスト外入力について(Access2002)

    お世話になっております。 ひとつお聞きしたいのですが、Accessのコンボボックスプロパティの「リスト外入力」の設定のしかたが分かりません。 コンボボックスを非連結にして、コンボボックスより選択してフィルタをかける動作と、コンボボックスに値がなかったらコンボボックスに直接入力して新しい値を元に新規にレコードを追加すると言ったロジックを組み込みたいのですが可能でしょうか?よろしくお願いいたします。 まとめると、 (1)コンボボックスより値を選択して、フィルタをかける。 (2)コンボボックスに値が無かったら、コンボボックスに直接入力して新規レコードとして、レコードを追加する こう言った、流れでの作業です。

  • ACCESSのコンボボックスにレコードセットでリストを表示させています

    ACCESSのコンボボックスにレコードセットでリストを表示させています。 2列表示で1を連結させています。 この状態で、コンボボックスの入力チェックを「はい」にすると、コンボボックスに直接入力したときに、「リストにありませんと」エラーになってしまいます。 リストから選択すれば、大丈夫なのですが・・・。 コンボボックスにレコードセットを使用したときには、入力チェックは使えないのでしょうか? Accessのバージョンは2003です。 よろしくお願いします。

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

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

  • Access2003でコンボボックスからデータを抽出したい

    自己啓発でAccess2003を勉強しています。 Access2003でコンボボックスで名前を選択して、データ(住所)を抽出したものをリストボックスに表示させたいのですがどこがまちがっているかわかりません。こんなことで3週間ぐらい悩んでいます。 回答またはアドバイスをお願いします。 もしくはもっと簡単なやりかたがあればお願いします。 (1)「氏名」、「住所」のテーブルを作成。テーブル名は「01データ」 (2)「氏名」、「住所」のクエリを作成。クエリ名は「クエリ1」 (3)フォームでコンボボックスとリストを作成。フォーム名は「印刷」 ⇒コンボボックスの名前は「検索」。 ⇒値集合ソースはSELECT [01データ].ID, [01データ].氏名 FROM 01データ; これで「氏名」が選択できた。 (4)クエリの「氏名」抽出条件にLike [forms]![印刷]![検索] (5)検索するマクロを作成。マクロ名「M検索」 アクションは 全レコードの表示 フィルタの実行 ⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] (6)マクロ「M検索」をコンボボックスのプロパティ「イベント」タブから変更時に設定する。 (7)フォーム「印刷」を開き、コンボボックスで氏名を選択すると『クエリ1!氏名』と表示されてしまいます。 (8)フォーム「印刷」のリストボックスは全レコードが表示されている。

  • ACCESSでコンボボックスが作れません

    ACCESS2000のフォーム内に抽出クエリを元にしたコンボボックスを作成しようとしているのですが、「1つ以上の必要なパラメータの値が設定されていません」と表示され作成できません。元になる抽出クエリを開くと、コンボボックスに表示したいデータが表示されているのですが、上記エラーがでてコンボボックスが作成できない状態です。どなたか解消方法がおわかりの方教えてください。宜しくお願いします。

  • accessでコンボボックスとサブフォームでデータ表示したい。

    accessのフォームでデータ検索表示したいのですが? データ表示の検索フォームを作成しようとしています。 まず検索したいテーブルの検索KEYにしたいフィールドを クエリを使い集計し、その結果をコンボボックスで表示して コンボボックスで指定すると、同一フォーム内にサブフォーム もしくはリストボックスで検索結果を表示したいのですが パラメータのわたしかた等が、よくわかりません。 方法を教えていただけないでしょうか? 参考になるサンプル等があれば助かります。 よろしくお願いします。

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

    ACCESSのコンボボックスに「012/015/028/125」等が設定されているて、 コンボボックスのプロパティの「入力チェック」は「はい」の設定になっております。 そういった場合、「12」と入力した場合、「012」とすることは可能でしょうか? テキストボックスの場合には、そのテキストボックスの更新後処理で Me.コード = Format(Me.コード, "000") のように記述し変更していたのですが・・・。 コンボボックスでは、「指定した値はリストにありません」と表示され、更新後処理がが実行されません。

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

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

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

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

専門家に質問してみよう