Page 532 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼アクセスからデータを取り出したい。 初心者M 03/1/9(木) 12:40 ┗Re:アクセスからデータを取り出したい。 yu- 03/1/9(木) 14:23 ┗ありがとうございました。 初心者M 03/1/11(土) 21:44 ─────────────────────────────────────── ■題名 : アクセスからデータを取り出したい。 ■名前 : 初心者M ■日付 : 03/1/9(木) 12:40 -------------------------------------------------------------------------
こんにちは。 アクセス初心者(エクセルのほうも・・・)なのですが、よろしくおねがいします。 アクセスからSQL文でデータを取り出したいのですが、レコードの抽出部分で下記のエラーがでてしまいます。 「実行時エラー 3061 。パラメータが少なすぎます。1を指定してください。」 パラメータとはクエリとかでつかうものですよね。1はどこに指定しろ、といってるのでしょうか??? それから「ワークスペース」とはなんなんでしょうか? どう捉えるべきなのでしょうか? (今はただDBを使うための空間かなー?と考えています。。。) ブックに載っているから、そのまま使ってはいるのですが・・・。 エクセルもアクセスも97バージョンです。 「伝票データ」テーブルの 「摘要」フィールドが「電話代」のレコードをすべて取り出したいのです。 Dim strname As String Dim strfold As String Dim ws As Workspace Dim db As Database Dim rst As Recordset Dim strsql As String strfold = ActiveWorkbook.Path strname = "電話代" '--▼アクセスに接続-- Set ws = DBEngine.Workspaces(0) '指定したデータベースを開く strsql = "select 日付 from 伝票データ where 摘要 = " & strname Set db = ws.OpenDatabase(strfold & "\伝票97.mdb") 'レコードの抽出 Set rst = db.OpenRecordset(strsql) ’← ここでエラーストップします。 Do While Not rst.EOF Debug.Print rst![日付] rst.MoveNext Loop 'データベースを閉じる db.Close 'オブジェクトを開放 Set ws = Nothing Set db = Nothing '--▲アクセスに接続-- |
▼初心者M さん: > 「実行時エラー 3061 。パラメータが少なすぎます。1を指定してください。」 > >パラメータとはクエリとかでつかうものですよね。1はどこに指定しろ、といってるのでしょうか??? このエラーがでるのはSQLエラーだと思います。 > Dim strname As String > Dim strfold As String > > Dim ws As Workspace > Dim db As Database > Dim rst As Recordset > Dim strsql As String > > strfold = ActiveWorkbook.Path > > strname = "電話代" > > '--▼アクセスに接続-- > Set ws = DBEngine.Workspaces(0) > > '指定したデータベースを開く > strsql = "select 日付 from 伝票データ where 摘要 = " & strname 上記の部分を strsql = "select 日付 from 伝票データ where 摘要 = '" & strname & "'" にしたらうまくいくような気がしますが(テーブル構成などわからないので確実かわかりませんが) おそらく摘要というフィールドはテキスト型なので、単純にstrnameを連結させた だけではSQLでは文字列とは認識してくれません(数値型ならこれOKですが) ちなみに、検索したい文字列に'を含んでいる場合は strsql = "select 日付 from 伝票データ where 摘要 = " & """" & strname & """" とすれば大丈夫です。 |
▼yu- さん: おっしゃるとうり、SQLの文字列関係でした。 ぶじなおりました。 ありがとうございました。これからもよろしくおねがいしまっす。(o^^o) |