2014-04-01 71 views
0

我想使用組合框選定的值作爲查詢從MySQL數據庫中拉另一個數據。讓我們說Combobox選擇值作爲id。那麼我將使用此ID來拉取與此ID相關的其他詳細信息,如供應商,成本等,以顯示在標籤選項中。我使用下面的代碼,但它不起作用。合併mysql記錄集在vba

sqlQa =「從matcat_select中選擇說明,其中BOF如'MAIN';」

rs.Open sqlQa,oConn,ADOPENSTATIC

隨着RS

'Set .ActiveConnection = Nothing 'Disconnect the recordset. 
     k = .Fields.Count 
    'Populate the array with the whole recordset. 
    vaData = .GetRows 
End With 

「操縱組合框的性能和顯示形式。

With UserForm1 
    With .ComboBox1 
     .Clear 
     .BoundColumn = k 
     .List = Application.Transpose(vaData) 
     .ListIndex = -1 
    End With 
End With 

'操縱組合框的性能和顯示形式

集RS1 =的CreateObject( 「ADODB.Recordset」)

sqlQb = 「選擇EOF從matcat_select其中描述='」 & ComboBox1。價值&「';」

rs1.Open sqlQb,oConn

儘管不rs1.EOF

Label6.Caption = RS1( 「EOF」)

rs1.MoveNext

WEND

請檢查我的代碼並糾正我,如果我錯了。此外,每當我通過vba在mysql中查詢時,我需要建立連接?

回答

0
If Not rs1.EOF Then 

Label6.Caption = rs1("EOF") 

Else 

Label6.Caption = "" 

End If 

試試這個

While Not rs1.EOF 
Label6.Caption = rs1("EOF") 
rs1.MoveNext 
Wend 

SELECT語句

sqlQb = "Select EOF From MyTable Where Description = '" & ComboBox1.Value & "';" 

組合框不是文本框。要獲得選定的值,請使用.Value方法。

是的,當你想執行任何查詢時你需要連接,你的VBA本身不是數據庫,它不知道你想要什麼。

recordset.Open源的ActiveConnection,CursorType的,鎖定類型,選項

http://msdn.microsoft.com/en-us/library/windows/desktop/ms675544(v=vs.85).aspx

+0

試圖將其粘貼。它顯示錯誤和突出顯示雖然不rs1.EOF然後作爲紅色。請幫我弄明白。 TNKS。 – tspeed

+0

什麼是錯誤? – Sky

+0

一旦我粘貼,它變成紅色,並顯示編譯錯誤。預期 - 聲明結束。 Tnks – tspeed