次の方法で共有

テーブル/クエリのコンボボックスで、存在する値が認識されない

Anonymous
2015-01-21T03:53:43+00:00

Windows7 32bitで、Access2013を使って開発をしています。

題記の通り、テーブル/クエリを値集合ソースとした、入力チェック付コンボボックスにおいて、

リストに存在する値を直接キーボードで入力しても、「指定した項目はリストにありません」が表示されます。

(値集合ソースには、「select 項目1 from テーブルA order by 項目1」といった、SQL文を指定しています。

 項目1は、文字列型2バイトの主キーで、数字をコードとして利用しています)

同様に、NotInListイベントも発生してしまいます。

なお、Access2010ランタイムをインストールしたマシンで動かしても、同様の現象となります。

以前の会社で利用していたAccess2003では、問題なくコンボボックスに値を直接入力出来たのですが、

何か追加で設定する内容が変わったのでしょうか?

なお、そのコンボボックスの値集合ソースを、「11;12;13」として、値集合タイプを「値リスト」としたら、

問題無く直接入力することが出来ています。

VBAコードの問題化と、新しく、フォームを作成して、コンボボックスを設置、

値集合ソースにSQL文し、入力チェックを「はい」としただけのフォームを作成しましたが、

同様の問題が発生しています。

恐れ入りますが、回避策について、ご教授願います。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

4 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2015-01-23T02:25:15+00:00

    hatena19

    お手数おかけしております。へつです。

    >コンボボックスの「値集合ソース」と「入力チェック」以外は規定値のまま変更してないですよね。

    変更していないです。どうにも、困ってしまいました…。

    Windows7 32bitの問題になるのですかね?

    自宅で利用しているマシンはWindows7 64bitのため、

    accdbファイルを持ち帰り、動作の確認をしてみたいと思います。

    また、他のaccdbファイルで確認してみたり、自分なりにもう少し確認していきたいと思います。

    また、わかりましたらご報告致します。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2015-01-22T08:12:12+00:00

    別のPC(Windows7 64bit Access2013 32bit)環境でテストしてみましたが、再現できませんでした。

    Windows7 32bit環境は用意できなかったのですが、この違いが影響しているのかな?

    コンボボックスの「値集合ソース」と「入力チェック」以外は規定値のまま変更してないですよね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2015-01-21T23:54:38+00:00

    hatena19

    こんにちは、へつです。

    お返事、ありがとうございます。

    まず、該当の現象についてなのですが…

    どうにも、私の環境でも、不具合が安定していないことがわかりました。

    ●ケース1

    最初に書いた内容です。3回ほど再現を確認しています。

    具体的にと言われても、あまり内容は変わらないのですが…

    1.リボンの作成→フォームデザインから新規フォームを作成

    2.リボンのデザイン→コントロール→コンボボックスで、適当な大きさのコンボボックスを作成

    3.2のコンボボックスの入力チェックを「はい」として、値集合ソースにselect文を貼付する

    (select 項目1 from テーブルA order by 項目1)

    4.フォーム右クリック→フォームビュー で動作を確認したところ、値の直接入力が出来ない状態に

    5.フォームを保存後、ナビゲーションのフォームから開いても、同様に入力不可

    6.5.のフォームの値集合ソースを「1;2;3」として、値集合タイプを値リストに変更

    7.6の状態で、フォーム右クリック→フォームビュー で動作を確認したところ、値の直接入力が出来ることを確認

    8.フォームを保存後、ナビゲーションのフォームから開いても同様に入力可

    9.8のフォームの値集合ソースおよび値集合リストを3の状態に戻したところ、直接入力が不可に

    ●ケース2

    他のフォームで利用しているコンボボックスでは、以下の状態でした。

    ・コンボボックスのドロップリストが非表示のときは直接入力可能

    ・コンボボックスのドロップリストが表示されているときは直接入力不可(リスト外扱いとなる)

    上記コンボボックスは、値集合ソースを2列取って2列目をテキストボックスに表示したり、

    コンボボックスをwithEvents付のクラスとして登録したりなど様々なことをしているのですが、

    ケース1から同様の処理を追加していっても、ケース2の状態になりませんでした…

    ●ケース3

    上記ケース1、ケース2の検証を行っている中で、一度だけ、ドロップリストにかかわらず直接入力が可能な状態になりました。

    しかし、その時点で両フォームを保存し、Accessを終了させ、再度accdbファイルを開いたところ、

    上記ケース1、ケース2の状態に戻ってしまいました…

    他にも動作が不安定な部分があったため、Access2013の修復インストールを2回ほど行いましたが、

    現象は改善されません。

    また、実際に作業を行うマシン(Windows7 32bit + Access2010ランタイム環境)でも、

    ケース2の現象が起きているため、個別マシンの環境による現象というのも考えにくいかと思っています。

    動作自体に歯問題が無いため大きな問題ではないのですが、

    直接入力を行いたいというユーザの要望があり、途方に暮れております。

    恐れ入りますが、どなたか、対策についてご教授願います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2015-01-21T06:07:09+00:00

    VBAコードの問題化と、新しく、フォームを作成して、コンボボックスを設置、

    値集合ソースにSQL文し、入力チェックを「はい」としただけのフォームを作成しましたが、

    同様の問題が発生しています。

    この再現手順を具体的に説明してもらえますか。

    当方のAccess2013で下記の手順では再現できませんでした(問題なく入力できる)。

    下記のテーブルを作成。

    テーブル名 テーブルA

    フィールド 項目1 テキスト型 フィールドサイズ2 主キー

    1、12、13 とデータ入力

    空白のフォームを作成して、コンボボックスを配置

    値集合ソース SELECT 項目1 FROM テーブル1 ORDER BY 項目1 

    入力チェック はい

    それ以外のプロパティは規定値のまま

    環境は、Windows8.1 64bitで、Access2013(32bit) です。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません