電子書籍の厳選無料作品が豊富!

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

A 回答 (4件)

こんにゃくは。



>>「オブジェクトが閉じられている場合は、操作は許可されません」
何か抜けてますね。

「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_acces …

この回答への補足

rec.Open "スケジュール", cn, adOpenKeyset, adLockOptimistic

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

補足日時:2006/12/19 15:39
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/19 16:26

No.3の回答をみたら見にくかったので


当たり前のことですが
cn と open の間には .があります。
cn.openです。
これだけで良いと思います。
    • good
    • 0

ごめんなさい。



記入ミスでした。

open cn
ではなく

cn.open

でした。
    • good
    • 0

こんにちは!



open文がないのでエラーになったのですね。

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=スケジュール表.mdb"
の次に
open cn

と入れてみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/19 16:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!