- ベストアンサー
アクセス97のコンボボックスについて
OSはACCESS97です フォーム上のコンボボックスに 2列 リスト表示できるようにしています。 1列目を選択するのに 2列目も表示させている状態です。 選択すれば1列目の値は取得できます。 今回 その同じ行の1列目と2列目を それぞれ別のテキストBOXに 格納することは できるのでしょうか? 例えば 1列目に A 2列目に AA とデータがあれば Aを テキストBOX1 に AAをテキストBOX2に 格納したいのです。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Column()で出来ませんか。 エクセルVBAでListBoxの例ですが下記で上手く出来ました。参考までに。 A1:B6に下記データを入れ,FillListRangeはA2:b6(AdditemやListに当たる),ColumnCountは2とする。 番号 氏名 11 山田 12 鈴木 13 田中 14 佐藤 15 今中 リストボックス外観は上記と同じ。 Private Sub ListBox1_Click() Cells(10, 1) = Sheet1.ListBox1.Column(0) Cells(10, 2) = Sheet1.ListBox1.Column(1) End Sub 14 佐藤の行をクリックすると A10:B10が 14 佐藤 となりました。 アクセスのコンボボックスに置き換えて、セルをTextBox1.Text等に 置き換えてみてください。 しかし苦労しました。
その他の回答 (1)
- tiga-
- ベストアンサー率19% (5/26)
テキストBOX1とテキストBOX2がテーブルとリンクしているかどうかで違ってくると思います。 非連結なら、計算式でいいでしょうし、テーブルにリンクしているならVBAあるいはマクロになると思います。 (私はマクロを使ったことがないので具体的にはわかりません) VBAの場合は、imogasiさんの感じでいいと思います。 私ならこんな感じですが。 private sub リスト_AfterUpdate() if isnull(me.リスト) then me.テキストBOX1=Null me.テキストBOX2=Null else me.テキストBOX1=me.リスト.column(0) me.テキストBOX2=me.リスト.column(1) end if end sub 単に表示するだけなら、テキストBOX1のソースに =IIf(isnull(リスト),"",リスト.column(1)) かなと思います。 なお、Nullの判定をしなくてもいいのかもしれませんが、今までNullのためにいろいろエラーが出たので、必ず判定する癖がつきました。 また、テーブルにリンクしている場合は、フィールドのプロパティで空文字の許可がされていない場合はNullではなく、""を代入しないとエラーになると思います。 デバッグしていないので、あんまり自信はありませんが経験上何とか動く気がします。 きっと、違う場合は、もっと詳しい人が説明してくれると思いますのでお許しください。