|
▼すず さん:
>▼飛ばない豚 さん、お答えありがとうございます。
>
>>エクセルの場合、変数(myDATA()など)に格納し、フォームのInitializeイベントで
>>Me.コンボボックス.List = myDATA
>>とすると、設定できます。
>
>下記のように修正しました。ところがやはり
>「Couldn't set the RowSource property. Invalid property value.」
>とエラーがでました。
>
>
>Private Sub UserForm_Initialize()
>
> Dim cnn As New ADODB.Connection
> Dim rec As New ADODB.Recordset
> Dim mydata As Variant
> cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=O:\sakakibara\sentaku.mdb;"
>
> rec.Open "選択", cnn, adOpenKeyset, adLockOptimistic
>
> mydata = "SELECT レベル1 FROM 選択 IN 'O:\sakakibara\sentaku.mdb'"
> ComboBox1.RowSource = mydata
>
>End Sub
>
>>ちなみに「あるソフト」とは何なのでしょう?
>>(Access)VBAは動くのでしょうか?
>>recordsetの取得は可能なのですよね?
>
>Accessへの接続まではできているようです。
>ソフトはCATIAというCADソフトです。
>
>>手動で設定するときはどのように設定するのでしょうか?
>>Accessのように、"1,a,2,b,3,c,,,,,"と設定できますか?
>>出来るのであれば、recordsetの値を変換してセットできそうな気もします。
>>(recordsetが取得できる事が前提ですが)
>
>プロパティのrowsourceに手動で値を設定してみましたが、同じエラーがでました。
>
>何かいい方法がありましたら、よろしくご指導お願いいたします。
-------------------------------------------------------------------
Excelでですが,RowSourceにこだわらず,とにかく動けばいいのでしたら
以下のようにすれば動きますが...
Private Sub UserForm_Initialize()
Dim cnn As New ADODB.Connection
Dim rec As New ADODB.Recordset
Dim mydata As Variant
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\temp\sentaku.mdb;"
rec.Open "選択", cnn, adOpenKeyset, adLockOptimistic
rec.MoveFirst
'ComboBox1.Clear
While Not (rec.EOF)
ComboBox1.AddItem rec.Fields("レベル1")
rec.MoveNext
Wend
End Sub
|
|