Sub ExportDataFromOracleViaAccess()
Dim accessApp As Object
Dim conn As Object
Dim rs As Object
Dim data As Variant
Dim i As Integer, j As Integer
Dim searchValue1 As String
Dim searchValue2 As String
Dim searchValue3 As String
Dim sql As String
' 検索条件をExcelのセルから取得(例: A1, A2, A3セルの値)
searchValue1 = ThisWorkbook.Sheets("Sheet1").Cells(1, 1).Value ' 1つ目の条件
searchValue2 = ThisWorkbook.Sheets("Sheet1").Cells(2, 1).Value ' 2つ目の条件
searchValue3 = ThisWorkbook.Sheets("Sheet1").Cells(3, 1).Value ' 3つ目の条件
' Accessアプリケーションを作成
Set accessApp = CreateObject("Access.Application")
accessApp.OpenCurrentDatabase "C:\path\to\your\database.accdb" ' Accessのデータベースパス
' ADO接続を作成
Set conn = CreateObject("ADODB.Connection")
' 接続文字列を設定(適切に変更してください)
conn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=YourDataSource;User Id=YourUsername;Password=YourPassword;"
' 接続を開く
conn.Open
' SQLクエリを作成(あいまい検索)
sql = "SELECT * FROM YourTableName WHERE " & _
"YourFieldName1 LIKE '%" & searchValue1 & "%' AND " & _
"YourFieldName2 LIKE '%" & searchValue2 & "%' AND " & _
"YourFieldName3 LIKE '%" & searchValue3 & "%'"
' SQLクエリを実行
Set rs = conn.Execute(sql)
' データを配列に格納
If Not rs.EOF Then
rs.MoveLast
rs.MoveFirst
ReDim data(1 To rs.RecordCount, 1 To rs.Fields.Count)
For i = 1 To rs.RecordCount
For j = 1 To rs.Fields.Count
data(i, j) = rs.Fields(j - 1).Value
Next j
rs.MoveNext
Next i
End If
' Excelシートにデータを書き込む
For i = LBound(data, 1) To UBound(data, 1)
For j = LBound(data, 2) To UBound(data, 2)
ThisWorkbook.Sheets("Sheet1").Cells(i + 2, j).Value = data(i, j) ' 書き込む行を調整
Next j
Next i
' 後処理
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
accessApp.Quit
Set accessApp = Nothing
End Sub