電子書籍の厳選無料作品が豊富!

ACCESS2000で、今まで使用していたコンボボックスをActiveXコントロール(Microsoft Forms2.0)のコンボボックスに変更しようとしています。今までは値集合ソースでクエリを使って「商品名」「商品コード」を表示させ、選択後に商品コードを取得して、他で利用しています。
これをActiveXコントロールでは、どのように行ったらよいのでしょう?
アドバイスをどうか、よろしくお願いします。

A 回答 (3件)

AxtiveX コントロールの ComboBox を利用した場合、<値集合ソース>が利用出来ないことが難点です。


ですから、ListBox を配置して利用する手もあります。

Private Sub Form_Load()
  Me.ListBox.Requery
  SetComboBox Me, "ComboBox", "ListBox"
End Sub

Public Function SetComboBox(ByVal frm As Form, _
              ByVal cmbBox As String, _
              ByVal lstBox As String) As Boolean
  Dim I As Integer
  Dim N As Integer
  
  N = frm.Controls(lstBox).ListCount
  frm.Controls(cmbBox).Clear
  For I = 1 To N
    frm.Controls(cmbBox).AddItem frm.Controls(lstBox).ItemData(I - 1)
  Next I
End Function

これで、事実上、従来通りに<値集合ソース>を利用してAxtiveX コントロールの ComboBox の値を設定することが可能です。

※参考になれば幸いです。
    • good
    • 0
この回答へのお礼

まさにズバリとも言うべき回答を有り難うございます。とても助かりました。感謝しております。

お礼日時:2006/03/10 17:29

配列に格納してListプロパティで設定するという


方法もあります。
---
Dim data(1,1) As String
data(0,0) = ""
data(0,1) = ""
data(1,0) = "商品名"
data(1,1) = "商品コード"
With Me.CBBOX
.ColumnCount = 2
.ListWidth = 200
.ColumnWidths = "100pt;100pt"
.List = data()
.ListIndex = 0
End With
    • good
    • 0
この回答へのお礼

こんなやり方もあるんですね。とても参考になりました。別件で悩んでいたことで、使えそうな感じで助かりました。有り難うございました。

お礼日時:2006/03/10 17:35

AddItemメソッド使います



これだけでは情報不足でしょうから
fm20.chmを探してみてください

Microsoft Forms2.0のヘルプファイルです
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。参考になりました。
ヘルプを探してみます。

お礼日時:2006/03/10 17:26

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