0
我想用VBA連接到我的Access表。我希望能夠輸入採購訂單號,並將查詢中的值引用到Access表中。我想將該查詢的結果打印到我的Excel工作表中。這是我到目前爲止..任何想法?使用VBA連接Access到Excel,不會輸出Access的任何記錄
Sub CommandButton1_Click()
Dim myValue As Variant
myValue = InputBox("Enter Purchase Order Number:")
Range("A1").Value = myValue
Call ADO_Conn(myValue)
End Sub
Sub ADO_Conn(myValue)
Dim conn As New Connection
Dim rstAnswer As New ADODB.Recordset
Dim connected As Boolean
Dim RootPath, DBPath As String
Dim tempString As String
connected = False
RootPath = "Z:\BSD Internship Program\FY14 Intern Files\John Jameson\Vouchers"
DBPath = RootPath & "Acquisition Support Datamart Build 9.11-03.accdb"
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source= Z:\BSD Internship Program\FY14 Intern Files\John Jameson\Vouchers\Acquisition Support Datamart 9.1103.accdb;"
connected = True
rstAnswer.Open "SELECT VW_PUB_PURCHASE_ORDER.PO_NO FROM VW_PUB_PURCHASE_ORDER " & _
"WHERE VW_PUB_PURCHASE_ORDER.PO_NO = ' " & myValue & " ';", conn, adOpenKeyset, adLockOptimistic
Do Until rstAnswer.EOF
tempString = CStr(rstAnswer!VW_PUB_PURCHASE_ORDER)
Application.ActiveWorkbook.Worksheets("Sheet1").Range("A5").Value = tempString
rstAnswer.MoveNext
Loop
rstAnswer.Close
conn.Close
connected = False
End Sub
非常感謝您的回覆!擺脫循環是一個好主意。你知道一種方法來引用單元格A1,而不是使用myValue。我試過「WHERE PO_NO ='&Sheet1.Range(A1).Value';」但它似乎並不奏效。任何見解? – Savino 2014-09-02 23:45:06
表格(「Sheet1」)。範圍(「A1」)應該有效。如果你沒有用引號括起「A1」,Excel會將其視爲一個變量。 – 2014-09-02 23:47:09
由於某些原因VBA不喜歡(「A1」)..我認爲這是「」,這是造成問題!儘管我很接近! – Savino 2014-09-03 00:10:31