[Access] 指定文字列を利用した検索結果からコンボボックスのRowSourceを設定

フォーム上に設定したテキストボックスのフォーカス喪失後に、コンボボックスのデータソースを入れ替え、レコードの1番目の値をコンボボックスに設定する

Private Sub fooTb_LostFocus()
	'piyoテーブルのfuga列にテキストボックス「foo」コントロールに
	'入力された文字列と前方一致するレコードを持つhoge列を抽出
	'fooTb: 検索文字列入力用テキストボックス
	Dim getCbListSql As String
	getCbListSql = "SELECT DISTINCT hoge " & _
		"FROM piyo " & _
		"WHERE fuga LIKE '" & Me.fooTb.Value & "*';"
	'コンボボックスに抽出したリストをセット
	'barCb: コンボボックス
	Me.barCb.RowSource = getCbListSQL
	'コンボボックスの初期値をリストの1番目に設定
	If Me.barCb.ListCount >= 1 Then
		Me.barCb.Value = Me.barCb.ItemData(0)
	End If
End Sub

環境

以下の環境で確認しました。

  • Access 2002
  • Windows XP Pro SP2