- 締切済み
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
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- 7_7_7
- ベストアンサー率24% (115/469)
No.3の回答をみたら見にくかったので 当たり前のことですが cn と open の間には .があります。 cn.openです。 これだけで良いと思います。
- 7_7_7
- ベストアンサー率24% (115/469)
ごめんなさい。 記入ミスでした。 open cn ではなく cn.open でした。
- 7_7_7
- ベストアンサー率24% (115/469)
こんにちは! open文がないのでエラーになったのですね。 cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=スケジュール表.mdb" の次に open cn と入れてみてください。
- STICKY2006
- ベストアンサー率29% (1536/5269)
こんにゃくは。 >>「オブジェクトが閉じられている場合は、操作は許可されません」 何か抜けてますね。 「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
お礼
何とか無事に開くことができました 今度は本当にSQLでエラーが出てますが^^; ありがとうございます!!
補足
rec.Open "スケジュール", cn, adOpenKeyset, adLockOptimistic で テーブルオープンしてみましたが、今度は「この操作を実行するために接続を使用できません。このコンテキストで閉じられているか、無効です」とのエラーが出てしまいました・・・
お礼
ご回答ありがとうございます