
VB6で開発をしています。
DB変数A = OpenDatabase(【mdb名】)
Set QUERY変数B = DB変数A.CreateQueryDef("")
QUERY変数B.SQL = SQL文
QUERY変数B.Execute
(中略)
Set レコード変数C = DB変数A.OpenRecordset(SQL文2)
(中略)
Set DB変数A = Nothing
といった処理を行っています。
この処理を繰り返すのは問題ないのですが、
この処理で使用している【mdb名】はレコードロックされたままになってしまいます。
どのように修正したらよいのでしょう?
No.1ベストアンサー
- 回答日時:
開けたら閉じるようにしてください。
DB変数A = OpenDatabase(【mdb名】)
Set QUERY変数B = DB変数A.CreateQueryDef("")
QUERY変数B.SQL = SQL文
QUERY変数B.Execute
(中略)
Set レコード変数C = DB変数A.OpenRecordset(SQL文2)
(中略)
レコード変数C.Close '追加
DB変数A.Close '追加
Set DB変数A = Nothing
ありがとうございます。
ご教授のとおり変更してみたのですが、今度は
「DB変数は既に使用されているので、使用できませんでした。」というエラーがでてしまいました。
ちなみに、レコードロックファイルはありませんが、
mdbを手動で開くこともできません。
再起動すると、元にもどります。
No.3
- 回答日時:
出あったことの無いエラーです。
差し支えなければ、コード全体を載せてください。「DB変数は既に使用されているので、使用できませんでした。」
No.2
- 回答日時:
最終的に
Set レコード変数C = DB変数A.OpenRecordset(SQL文2)
をしていのですよね?
この部分
Set QUERY変数B = DB変数A.CreateQueryDef("")
QUERY変数B.SQL = SQL文
QUERY変数B.Execute
が何をしているのかわからないけど、クエリを呼ぶ必要が無いのでは?
状況も、QueryDefがメモリ上に残っちゃっている時の症状に似てるので、、、
もし、更新クエリや追加クエリのSQL文なのであれば、単に更新系のSQL文を発行するだけでよいですよ。
書き換えると
Call DB変数A.Execute(SQL文)
って感じで、更新できると思います。
それでも症状が改善されなければ、原因は他にありかと、、、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- 物理学 2物体の単振動 1 2023/08/17 20:27
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS2000 SQL 最大レコード数
-
Access97 VBAにてレコードの検索
-
PHP+MySQLで同じIDの備考項目を
-
ACCESS VBA テキストボックス
-
ソート処理について
-
VBAで制御コード付きテキストフ...
-
DataGridViewの、選択されてい...
-
Access VBA フォームに表示したい
-
Visual C#でSQLのテーブルを読...
-
SQLiteで、ランダムにレコード...
-
updateメソッドで止まってしまう
-
サブフォームに新規レコードを...
-
DataGridViewにてセル以外をク...
-
HTA上データをExcelへ転記する...
-
SQLの重複選択について
-
DynamicSQL
-
末尾に空白を含む項目の扱い
-
助けてください!iPod touchの...
-
SQL・・・分かりません。
-
ビット演算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードが存在しなかった場合
-
DataGridViewの、選択されてい...
-
ADO VBA 実行時エラー3021
-
差し込み印刷のレコード数について
-
ACCESSで大量の更新を行うと「...
-
ファイル書込みで一行もしくは...
-
カレントレコードが無い事を判...
-
ワードの差込印刷で教えて下さ...
-
アクセスでレポートの1印刷内...
-
DataGridViewの内容をDBに反映...
-
[VBA] ADOの Clone と AddNew
-
固有レコード識別子の選択とは
-
JSPのNULLレコード表示について...
-
Access を×ボタンで閉じ...
-
サブフォームに新規レコードを...
-
データセットのレコード更新が...
-
サブレンジ分割されたNDB(富士...
-
レコードセット(ADO.Recordset)...
-
DataGridViewにてセル以外をク...
-
COBOLでのランダムアクセス
おすすめ情報