0
因此,我对编码非常陌生,我的工作让我深入到一个excel项目中,希望能够得到一些帮助。在Excel中使用输入字段在Access中查找和检索数据
我们目前拥有访问数据库,其中包含特定交易所上市证券的历史价格。我想知道是否可以使用VBA从Excel中提取选择输入的历史价格。到目前为止,我有这个代码 - 子getDataFromAccess()
Dim DBFullName As String
Dim Connect As String, Source As String
Dim Connection As ADODB.Connection
Dim Recordset As ADODB.Recordset
Dim Col As Integer
Dim Symbol As String
' Database Path Info
DBFullName = "O:\ProjectX\ProjectX.accdb"
' Open the Connection
Set Connection = New ADODB.Connection
Connect = "Provider=Microsoft.ACE.OLEDB.12.0;"
Connect = Connect & "Data Source=" & DBFullName & ";"
Connection.Open ConnectionString:=Connect
' pull first symbol input from worksheet
Symbol = ActiveSheet.Range("A1").Value
' Create RecordSet
Set Recordset = New ADODB.Recordset
With Recordset
' Filter Data
Source = "SELECT * FROM HistoricalData WHERE [SYMBOL] = 'HYD'"
' Source = "SELECT * FROM Customers WHERE [Job Title] = 'Owner' "
.Open Source:=Source, ActiveConnection:=Connection
' MsgBox "The Query:" & vbNewLine & vbNewLine & Source
' Write field names
For Col = 0 To Recordset.Fields.Count - 1
Range("B1").Offset(0, Col).Value = Recordset.Fields(Col).Name
Next
' Write recordset
Range("B1").Offset(1, 0).CopyFromRecordset Recordset
End With
ActiveSheet.Columns.AutoFit
Set Recordset = Nothing
Connection.Close
Set Connection = Nothing
End Sub
正如你所看到的,它拉的HYD的数据,但我无法弄清楚如何把它取值,无论是从形式还是细胞。我曾尝试
Source = "SELECT * FROM HistoricalData WHERE [SYMBOL] = SYMBOL"
和
Source = "SELECT * FROM HistoricalData WHERE [SYMBOL] = ActiveSheet.Range("A1)"