前提・実現したいこと
エクセルVBAでACCESSから特定のデータを呼び出す機能を作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
該当のソースコード
VBA,SQL
1Sub fetchRecord() 2 3Dim ws As Worksheet 4Set ws = ThisWorkbook.Worksheets("Sheet2") 5 6Dim strFileName As String 7strFileName = "test4.accdb" 8 9Dim adoCn As Object 'ADOコネクションオブジェクト 10Set adoCn = CreateObject("ADODB.Connection") 'ADOコネクションオブジェクトを作成 11adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\" & strFileName & ";" 'Accessファイルに接続 12 13Dim adoRs As Object 'ADOレコードセットオブジェクト 14Set adoRs = CreateObject("ADODB.Recordset") 'ADOレコードセットオブジェクトを作成 15 16Dim id As Long 17id = InputBox("呼び出すIDを入力してください") 18 19Dim strSQL As String 20strSQL = "SELECT * FROM 成績表 WHERE ID=" & id 21 22adoRs.Open strSQL, adoCn 'SQLを実行して対象をRecordSetへ 23ws.Range("A2").CopyFromRecordset adoRs 24 25adoRs.Close 'レコードセットのクローズ 26adoCn.Close 'コネクションのクローズ 27 28Set adoRs = Nothing 29Set adoCn = Nothing 'オブジェクトの破棄 30 31End Sub 32
サイトを参考にして作成した後
Sub fetchRecord() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Sheet2") Dim strFileName As String strFileName = "test4.accdb" Dim adoCn As Object 'ADOコネクションオブジェクト Set adoCn = CreateObject("ADODB.Connection") 'ADOコネクションオブジェクトを作成 adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\" & strFileName & ";" 'Accessファイルに接続 Dim adoRs As Object 'ADOレコードセットオブジェクト Set adoRs = CreateObject("ADODB.Recordset") 'ADOレコードセットオブジェクトを作成 Dim id As Long txt = InputBox("呼び出すIDを入力してください") Dim strSQL As String strSQL = "SELECT * FROM テーブル1 WHERE フィールド2= '" & Txtフィールド2 & "' & txt" adoRs.Open strSQL, adoCn 'SQLを実行して対象をRecordSetへ ws.Range("A2").CopyFromRecordset adoRs adoRs.Close 'レコードセットのクローズ adoCn.Close 'コネクションのクローズ Set adoRs = Nothing Set adoCn = Nothing 'オブジェクトの破棄 End Sub
新たに作成してみたのですがエラー内容
実行時エラー'2147217904(80040e10)':
1つ以上の必要なパラメーターの値が設定されていません。
試したこと
上記のソースからマクロで呼び出すようにはできたのですが、
イメージしている機能はセルに日付を入力したらその日付でデータを
取得してくるものを作成しようと思います。
毎回マクロを呼び出して指定するのではなく特定のセルに日付を入れたら
抽出するVBAのヒントをどなたかわかる方教えていただけますでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/24 04:47
2018/06/24 05:27