0
(モジュール - パブリック関数で)ExcelでsqlDbとの接続が良好です。Excelでワークシートにコンボボックスを作成するExcelを選択してください。
私はこの接続をうまく動作する単純なSelectクエリ(Sheet1コード)で使用しました。コードの下あたり:今すぐではなく出力よりも
Private Sub Selection()
Dim rs As Object
Set rs = CreateObject("ADODB.Recordset")
Dim sqlstr As String
sqlstr = "Select * from Selection"
Call connectDatabase
rs.Open sqlstr, DBCONT
If rs.RecordCount > 0 Then
For i = 1 To rs.RecordCount
With ThisWorkbook.Sheets("Sheet1")
.Cells(i, 1).Value = rs(0)
.Cells(i, 2).Value = rs(1)
End With
rs.movenext
Next i
Else
MsgBox "FFS"
End If
rs.Close
Set rs = Nothing
Call closeDatabase
End Sub
のSheet1のこれらの細胞(1,1)への結果と(1,2)は、は、私は上記の結果は次の使用例は、シート1の私のComboBox1を移入し、と離れてやりたいです出力。私は多くの解決策を見てきましたが、私は苦労しています。
あなたが私に最善の答えを手伝ったり、指示したりできることに感謝します。
ありがとうございます。
Dasal(あなたはそれはあなたが使用しているコンボボックスこれに依存して設定する方法)あなたのコンボボックスオブジェクトを設定
。 'rs.RecordCount> 0 Then'文の直前に、次の行を追加してください(あなたのコンボボックスオブジェクトは** oCB **と仮定します):' oCB.Clear'。あなたの 'For i = 1 To rs.RecordCount'ループの中から' With ThisWorkbook.Sheets( "Sheet1") '句を削除(またはコメントアウト)し、' oCB.AddItem rs(i) 'に置き換えてください。それはトリックを行う必要があります – Zac
あなたは、レコードセットの '.getrows'プロパティとコンボの' .list'プロパティを見ることができました。私は分でテストする時間はありませんでしたが、 'ActiveSheet.Shapes( 1).OLEFormat.Object.Object.List = r.GetRows' vaqueのためのお詫び、私は完全な回答を投稿できるかどうかを見直します。 –
Zacに感謝します。あなたは正しい道に私を置いてきました。微妙な調整をして、私はコンボボックスに人をつけることができました。 –