0
私はコーディングに新しい経験があり、私の仕事は私にExcelプロジェクトに参加してくれていて、助けてもらいたいと思っていました。Excelで入力フィールドを使用して、アクセス時にデータを検索して取得する
現在、特定の取引所に上場されている有価証券の過去の価格のアクセスデータベースがあります。私はVBAで、選択された入力の過去の価格を引き出すことが可能かどうか疑問に思っていました。これまでのところ、私はあなたが見ることができるように、これは サブ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)"