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

こんにちは。現在ACCESS2000のフォームにリストボックスを配置し、
複数選択は「しない」に設定しています。
リストボックスの項目をどれか一つ選択するか全く選択しないことを
可能としたい(選択している値を再度クリックすると選択解除できるよう
にしたい)のですが、うまくいきません。
何か方法がありましたら、ご教示願います。

A 回答 (2件)

#1の補足&別提案



pooh-tanさんの仰るとおりでした。(無念)

で、違う方法です。
複数選択のプロパティを「する」にして、複数選択させない方法です。
(泥臭いプログラムだが動きはOK)


Private lngIdx As Long 'リスト選択インデックス格納用変数

Private Sub Form_Load()
  lngIdx = -1 'リストボックスが初期選択されていない場合
End Sub

Private Sub list1_Click()
  If list1.ItemsSelected.Count > 1 Then
    For i = 0 To list1.ListCount
      list1.Selected(i) = False
    Next i
    list1.Selected(list1.ListIndex) = True
    lngIdx = list1.ListIndex
  Else
    lngIdx = -1
  End If
End Sub
    • good
    • 0
この回答へのお礼

上記方法でうまくいきました。
smart600ccさん、大変ありがとうございました!!

お礼日時:2002/10/15 14:42

もっと良い方法があると思いますけど、とりあえず急ぎならば、これでいいのでは。



コードビルダ(VBA)でプログラム。

リストボックス名:list1

選択の有無及び値はlngIdxで取得(-1:未選択)

Private lngIdx As Long 'リスト選択インデックス格納用変数

Private Sub Form_Load()
  lngIdx = list1.ListIndex
End Sub

Private Sub list1_Click()
  If lngIdx = list1.ListIndex Then
    list1.ListIndex = -1
    lngIdx = -1
  Else
    lngIdx = list1.ListIndex
  End If
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。上記の通りやってみたんですが、
確かに選択の解除ができるようになったのですが、選択を解除した
場合他のコントロール(コマンドボタンやテキストボックス)を操作する
ことができくなってしまいます。
たびたび申し訳ありませんが、宜しくお願いします。

お礼日時:2002/10/15 12:38

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A