2012/05/23

access2010 access2007 複数値を持つコンボボックス -2-

コメントあったし、今月はまだポストしてなかったし。
access2007以降、SharePointリストを扱えるようになっていて、その機能のひとつとして複数選択可能なルックアップが存在しています。なんでこんな機能が追加されたのかっていうことにはそんな背景があるからなのでしょう。

複数値を持つフィールドの概要
クエリで扱う方法についても記されています。

では、フォーム上でのやりくりの件。
で、フォーム。
選択されているものの列挙とすべて未選択に。
Option Compare Database
Option Explicit

'すべて未選択に
Private Sub cmd1_Click()
    Me.F_mvl = Array()
End Sub

'すべて列挙
Private Sub cmd2_Click()
    Dim tmp As Variant, i As Integer
    tmp = Me.F_mvl
    If Not IsNull(tmp) Then
         For i = 0 To UBound(tmp)
            MsgBox tmp(i)
         Next
    End If
End Sub
複数値コンボボックスのValueプロパティには、Null もしくは バリアント配列が入っている。なので、選択済みを列挙するには、その配列を参照すればよい。で、すべて未選択とするには、空の配列を代入すればよい。
Private Sub Form_BeforeInsert(Cancel As Integer)
    Dim tmp() As Variant
    tmp = Array("リンゴ", "ゴリラ")
    Me.F_mvl = tmp
End Sub
規定値っぽくしたい場合はこんな感じで。

1 件のコメント:

匿名 さんのコメント...

ありがとうございます。
完全独学で勉強しているのでホント助かりました。
優しいじゃねーか( ´ω`)σ)Д`)プニョプニョ