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

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

A 回答 (4件)

1. 表示エリアとしてテキストボックスを作ったのですが、テキストボックスでOKか?


OKです。

2. 1でOKの場合、リストボックスで選択したものをテキストボックスに表示させる方法
表示するテキストボックスをFieldname1、リストボックスをFieldListとすると、
Me!FieldName1 = Me!FieldList
でできるはずです。

3. 1でOKの場合、そのテキストボックスへ入力できなくする方法(表示ONLYにしたい)
テキストボックスを使用不可、ロックすればいいと思いますが...。

簡単ですが、参考にしてください。

この回答への補足

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

補足日時:2002/02/15 13:09
    • good
    • 0

リストボックスのプロパティの更新後処理から[イベントプロシージャ]を


選んで、右に出る ・・・ をクリックしてください。コードはそこに記述します。

ここで「リスト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

この回答への補足

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

補足日時:2002/02/15 15:26
    • good
    • 0

1.の補足です。


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

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

お礼日時:2002/02/15 15:23

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/02/19 19:39

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