• ベストアンサー

リストボックスで選択したデータを表示する方法

ソフトはACCESS2000です。 フォームでの入力で、リストボックスから複数選択できるようにしているのですが、このリストボックスの値集合ソースに入っている件数が多いため、下にかなりスクロールすることになります。 そこで、リストボックスの右側に別にリストボックスで選択したものを表示させられないかと思っています。 ここでお聞きしたいのは、 1. 表示エリアとしてテキストボックスを作ったのですが、テキストボックスでOKか? 2. 1でOKの場合、リストボックスで選択したものをテキストボックスに表示させる方法 3. 1でOKの場合、そのテキストボックスへ入力できなくする方法(表示ONLYにしたい) 4. 1でだめな場合、別な方法はあるか?あればその方法 です。 回答は、1~3か、1,4になるかと思います。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • peso
  • ベストアンサー率41% (40/97)
回答No.2

リストボックスのプロパティの更新後処理から[イベントプロシージャ]を 選んで、右に出る ・・・ をクリックしてください。コードはそこに記述します。 ここで「リスト0」はリストボックスの名前、「テキスト2」はテキストボッ クスの名前です。 Private Sub リスト0_AfterUpdate() Dim cnt As Integer Dim dummystr As String cnt = 0 dummystr = "" While cnt < リスト0.ItemsSelected.Count dummystr = dummystr & リスト0.ItemData(リスト0.ItemsSelected.Item(cnt)) dummystr = dummystr & "/" cnt = cnt + 1 Wend テキスト2.Value = dummystr End Sub

hinebot
質問者

補足

バッチシできました! ありがとうございました。ただ、欲を言いますと >dummystr = dummystr & "/" この辺をどうにかして、縦に並べられる(改行できる)とありがたいのですが。 何とかなりますでしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • peso
  • ベストアンサー率41% (40/97)
回答No.4

VBA ではどうもテキストボックス内で改行出来ないようなので、 改行して表示したい場合はテキストボックスでなく、こちらも リストボックスにしたらどうでしょうか? リスト0が選択するリストボックス、リスト2が表示用のリストボックスです。 (前もってリスト2の値集合タイプを値リストにして下さい。) Private Sub リスト0_AfterUpdate() Dim cnt As Integer If リスト0.ItemsSelected.Count > 0 Then リスト2.RowSource = リスト0.ItemData(リスト0.ItemsSelected.Item(0)) & ";" cnt = 1 While cnt < リスト0.ItemsSelected.Count リスト2.RowSource = リスト2.RowSource & リスト0.ItemData(リスト0.ItemsSelected.Item(cnt)) & ";" cnt = cnt + 1 Wend Else リスト2.RowSource = "" End If End Sub

hinebot
質問者

お礼

ちょっと今の私には難しすぎます。今回は改行しないで表示することにしました。 わざわざありがとうございました。

すると、全ての回答が全文表示されます。
回答No.3

1.の補足です。 いつのタイミングで、テキストボックスに移すかによりますが、リストの中の項目をダブルクリックで表示させる場合は、リストボックスのDbclick時に先ほどの式を追加してみてください。

hinebot
質問者

お礼

リストボックス側のプロパティですね。←こんな初歩的なことも分からずにいました。^^; ありがとうございました。

すると、全ての回答が全文表示されます。
回答No.1

1. 表示エリアとしてテキストボックスを作ったのですが、テキストボックスでOKか? OKです。 2. 1でOKの場合、リストボックスで選択したものをテキストボックスに表示させる方法 表示するテキストボックスをFieldname1、リストボックスをFieldListとすると、 Me!FieldName1 = Me!FieldList でできるはずです。 3. 1でOKの場合、そのテキストボックスへ入力できなくする方法(表示ONLYにしたい) テキストボックスを使用不可、ロックすればいいと思いますが...。 簡単ですが、参考にしてください。

hinebot
質問者

補足

回答ありがとうございます。 1つだけ質問追加させてください。 2の「Me!FieldName1 = Me!FieldList」はどこに設定すれば良いですか。(式?の意味は判ります。)

すると、全ての回答が全文表示されます。

関連するQ&A