いつもお世話になっております。
現在、表題の事象で悩んでおります。
システムの流れは以下です。
サブフォームに登録住所を表示する。
当コンボボックスの値は以下です。
値集合体ソース:
vba
1SELECT 都道府県マスタ.コード, 都道府県マスタ.名称 FROM 都道府県マスタ IN "" [ODBC;Driver={SQL Server};SERVER=testserver;Database=TESTDB;UID=test;PWD=test];
コントロールソース:都道府県コード
サブフォームに値をセットすることはできているのですが、
コンボボックスだけ値が表示されません。
IN句が原因なのでしょうか?
ご教授のほどよろしくお願いします。
★追記★
・コンボボックスはサブフォームの中にあります。
・値集合体ソースは、このコンボボックスの中に書いています。(コントロールソースも指定しています)
・このコンボボックスのコントロールソースに該当する値は、サブフォームのレコードソースで取得しています
・コントロールソースに値が取得できていることの確認は、同サブフォーム内に、適当なテキストを配置し、そこにこのコントロールソースを指定すると、コンボボックスのキーに対応する値が表示されました。
・連結列 > 1
列数 > 2
列幅 > 0cm,6cm
「コンボボックスに値が表示されない」というのは、下記のどちらの意味でしょうか。
コンボボックスのテキストボックス部分に値が表示されない。
コンポボックスのドロップダウンリストに値が表示されない。
テキストボックス部分はコントロールソースに設定したフィールドの値が表示されます。
ドロップダウンリストには値集合ソースに設定したクエリのデータセットが表示されます。
コンボボックスのテキストボックス部分に値が表示されない。でございます。
ドロップダウンリストには値が表示されており、かつコントロールソースに指定した、値をサブフォームに持ってくるができることも確認済です。
ただ、コンボボックスのテキストボックス部分に値が表示されません、、、、。
実は、上手く動いている(コンボボックスにテキストが正常に表示される)ファイルからFormを丸っとコピーして作成しています。
そのファイルと差分を見ていたのですが、IN句が上手く動いている方では IN '' [接続情報]のようにシングルクォートになっています。
これが原因でしょうか????
それ以外の違いはありません、、、、。
また、上手くいかないファイルではシングルクォートにしても
ダブルクォートに戻ってしまいます。
ドロップダウンリストに値は表示されているのですね。
ならば、下記の情報を質問に追記してください。
コンボボックスはメインフォームに配置しているのか、サブフォームに配置しているのか。
> 値をサブフォームに持ってくるができることも確認済です
上記を意味をもう少し具体的に。また、どのように確認したのかも。
コンボボックスの下記のプロパティの設定。
連結列
列数
列幅
追記いたしました。
またご教授のほどよろしくお願いします。
列幅 > 0com,6cm
これは写すときのタイプミスかな。実際は、 0cm;6cm ですよね。
ドロップダウンリストには、県名が表示されていますか。
列幅を、1cm;6cm としたときはどうなりますか。
あと、テーブルをローカルにインポートして、そのテーブルを値集合ソースに設定した場合はどうなりますか。
これは写すときのタイプミスかな。実際は、 0cm;6cm ですよね。
ドロップダウンリストには、県名が表示されていますか。
その通りです、、、、。今修正しました。県名も表示されております。
>列幅を、1cm;6cm としたときはどうなりますか。
1cmのところにコードが表示されることを確認しました。
>あと、テーブルをローカルにインポートして、そのテーブルを値集合ソースに設定した場合はどうなりますか。
同じくダメでした、、、、。
テキストだけが表示されない感じです。
>>あと、テーブルをローカルにインポートして、そのテーブルを値集合ソースに設定した場合はどうなりますか
失礼しました。ローカルテーブルにインポートすればいけました。。。。
なんとかIN句を使って実現したいのですが、それは難しいでしょうか???
リンクテーブルだとどうなりますか。
リンクテーブルがダメな理由はなんでしょう。
また、都道府県データなら、48件のデータで固定なので、ローカルテーブルでいいと思うのですが、わさわざ外部参照するのはなぜでしょう。(質問用のサンプルということかな)
>リンクテーブルだとどうなりますか
リンクでもいきました。
>リンクテーブルがダメな理由はなんでしょう。
ダメな理由は、このシステムではリンクテーブルを一つも使用しておらず、
都度サーバーにアクセスして動いていますので、極力リンクは作成しないでほしいという要望があります、、、。
>(質問用のサンプルということかな)
その通りです。
hatena19様でも対応が分かりませんかね、、、。
状況から考えるとIN句の制限なんでしょうかね。
シングルクォートに勝手に変わるというのも不思議な現象です。
上手くいくファイルもあるというのも不思議です。
ファイルの修復・最適化はしてますか。
それでダメなら、新規にデータベースファイルを作成して、そこにすべてのオプジェクトをインポートするというのも試してみてください。
いや、テーブルを保持しているかどうかだと思います。。。。
上手いくファイルは、ローカルテーブルではないですが、リンクテーブルとして、値集合体を取得するテーブルを保持してます。
そこに必要ないけど、IN句を試しに記載しても上手く値が表示される。ということです。。。
なので、おそらくローカルにテーブルを保持しているかだと推測します。
あなたの回答
tips
プレビュー