• 締切済み

VBでmdbファイルの抽出

VB6,accessで勉強しています。VBからアクセスファイルを読み込んで sqlで指定したレコードだけ抽出したいのですが、sql実行のところで 「オブジェクトが閉じられている場合は、操作は許可されません」 とエラーが出て出来ません。ご教授お願いします。 Dim cn As New ADODB.Connection Dim rec As New ADODB.Recordset cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=スケジュール表.mdb" Set rec = cn.Execu("SELECT * FROM スケジュール WHERE 日付 = nowdate") Do Until rec.EOF FlexGrid.TextMatrix(i, 0) = rec("開始") FlexGrid.TextMatrix(i, 1) = rec("終了") i = i + 1 rec.MoveNext Loop rec.Close: Set rec = Nothing cn.Close: Set cn = Nothing

みんなの回答

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.4

No.3の回答をみたら見にくかったので 当たり前のことですが cn と open の間には .があります。 cn.openです。 これだけで良いと思います。

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.3

ごめんなさい。 記入ミスでした。 open cn ではなく cn.open でした。

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.2

こんにちは! open文がないのでエラーになったのですね。 cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=スケジュール表.mdb" の次に open cn と入れてみてください。

punipu
質問者

お礼

ご回答ありがとうございます

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんにゃくは。 >>「オブジェクトが閉じられている場合は、操作は許可されません」 何か抜けてますね。 「sql実行のところで」 って事なので、エラー場所は、それ以前になりますよね。 で、さらに定義が間違えていたら間違いって出るので エラー箇所は cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=スケジュール表.mdb" Set rec = cn.Execu("SELECT * FROM スケジュール WHERE 日付 = nowdate") ここまでの間。 さて。。。大体の流れ?ですが ・変数定義 ↓ ・接続確立 ↓ ・テーブルオープン ↓ ・テーブル操作 ↓ ・テーブルクローズ ↓ ・接続終了 。。。こんな感じだっけ。。。? で、コレに当てはめると ・接続確立 cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=スケジュール表.mdb" ・テーブル操作 Set rec = cn.Execu("SELECT * FROM スケジュール WHERE 日付 = nowdate") ということで、テーブルのオープンが抜けてます。 操作するテーブルを開いてやってください。 下記アドレス参照。 http://homepage2.nifty.com/inform/vbdb/ado_access.htm

punipu
質問者

お礼

何とか無事に開くことができました 今度は本当にSQLでエラーが出てますが^^; ありがとうございます!!

punipu
質問者

補足

rec.Open "スケジュール", cn, adOpenKeyset, adLockOptimistic で テーブルオープンしてみましたが、今度は「この操作を実行するために接続を使用できません。このコンテキストで閉じられているか、無効です」とのエラーが出てしまいました・・・

関連するQ&A