プロが教える店舗&オフィスのセキュリティ対策術

フォームにコンボボックスを配置し、下記の動作をさせたいと思ったのですが、1は出来たものの2が出来ませんでした(値集合ソースの中身は表示されるものの、選択してもコンボボックスに反映されませんでした)。

1. フォームオープン・・・データベースのcmb1の値より、対応する文字をコンボボックスに表示する。
2. コンボボックスの値の変更・・・プルダウンから値集合ソースに表示されている任意の値を選択し、コンボボックスに設定する。

その為、どうすれば値を変更できるようになるかアドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。

なお、初期状態から下記を変更しております。


【テーブル】
テーブル名:tbl
フィールド名:ID,cmb1
値:1,2


【フォーム】
フォーム名:form1(コンボボックスを一つ配置)

フォームのレコードソース:SELECT Choose(tbl.cmb1,"A","B","C") AS nm_cmb FROM tbl WHERE (((tbl.ID)=1));

コンボボックス
列数:2
列幅:0cm;3cm
コントロールソース:nm_cmb
値集合タイプ:値リスト
値集合ソース:1;A;2;B;3;C
連結列:2


上記の状態で起動時のコンボボックスの中身は"B"と表示されるものの、コンボボックスのプルダウンメニューを表示して値を変更しようとしても出来ない事が確認できると思います。

以上、よろしくお願いします。

A 回答 (1件)

コンボボックスの設定とかではなく、


Choose(tbl.cmb1,"A","B","C") AS nm_cmb
というような演算フィールド自体が更新できません。
テキストボックスにしても更新できないことが確認できると思います。

多分、希望のことは、tbl の cmb1 には、1,2,3 の数値を格納、
フォームでは、数値ではなく、A, B, C のテキストを表示、
と推測しますがあってますか。

もし、そうなら、下記の設定で、変更できるようになります。

フォームのレコードソース
SELECT tbl.cmb1 AS nm_cmb FROM tbl WHERE (((tbl.ID)=1));

コンボボックス
列数:2
列幅:0cm;3cm
コントロールソース:nm_cmb
値集合タイプ:値リスト
値集合ソース:1;A;2;B;3;C
連結列:1
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ご教示いただいた記述を試したところ、意図した動作となりました。

このたびはどうもありがとうございました。
以上、よろしくお願いします。

お礼日時:2011/03/09 23:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!