いつもお世話になっております。
インターネットやテキストで調べてもわからず、
似たような質問が無いものかとこちらのほうでも検索したのですが、見当たらなかったため新たに質問させていただきます。
現在、エクセルVBAにてADOを使用し、ワークシートをテーブルに見立てて、SQLを発行しているのですが、その際に生成するレコードセットの開放が確認できず困っています。
もちろんclose及びnothingは行っています。
タスクマネージャーを確認しながら、当該のステップが実行された時点で、メモリが開放されるか見ていても、物理メモリの利用可能サイズは微動だにしません。レコードセットが生成された時点のままです。
どなたか、思い当たることがございましたら、回答いただけませんでしょうか?よろしくお願いいたします。
補足:WindowsXP、EXCEL XP、メモリ256、といった環境です。
発行しているSQLはそれほどややこしくはありません。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ADOのみならず、
どんなコンポーネントでも
VBから起動すれば、
メモリを開放してくれません。
バグなのか、そういう仕様なのかは
当局は一切感知しておりません。
As New 宣言した場合は
起動時からメモリを消費しますし、
CreateObject時には
呼び出した瞬間から
メモリを消費します。
が!!!
開放はしません。
領域を確保しつづけるように
設計されてるからだと思いますが。
何故かって?
もう一度同じ容量食われたときに
メモリが足りなくなることを防ぐためさ…。
No.1
- 回答日時:
ADODB.ConnectionにSetを発行する際、Newはつけていますか?
問題のEXCELを閉じる(終了)とメモリ解放されるなら、Nothingを宣言したオブジェクトの、さらに上位が犯人だと思います。
ハズしてたらごめんなさい。
ご回答ありがとうございます。
EXCELを閉じるとメモリは解放されます。
ですが、ConnectionもRecordsetも生成時には、NEWをつけていますので、原因はそこではないかと思われます。
Public adoCONNECTION As ADODB.Connection
Set objADOConnect = New ADODB.Connection
Dim objADORS1 As ADODB.Recordset
Set objADORS1 = New ADODB.Recordset
といった具合です。
これらを踏まえた上で、思い当たる点はございますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CPU・メモリ・マザーボード Windows11アップデート後の不具合(メモリ不足)について 9 2023/01/04 11:34
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- ノートパソコン 自作にするか、メーカーか、オススメのノートPCをおしえてください。 5 2022/11/29 17:42
- アプリ swiftでスマホアプリを開発した時の動作確認 1 2023/02/14 11:37
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- Excel(エクセル) Excelについて質問です。 シート1の検索値例えば *ABC* をシート2.3.4から検索して、シ 5 2023/02/17 23:30
- CPU・メモリ・マザーボード PCのメモリについて質問です 8 2022/10/04 09:35
- PostgreSQL ポストグレにあるExcelファイルを開くには 1 2022/12/13 18:07
- CPU・メモリ・マザーボード メモリが使用可能にならない 3 2022/08/13 17:13
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
closeとメモリの開放について
Visual Basic(VBA)
-
[VBA] ADOの Clone と AddNew
その他(プログラミング・Web制作)
-
-
4
参照設定は2.8と6.0 6.1とどちらにチェッ
その他(Microsoft Office)
-
5
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
6
エクセルでエラーが出て困っています。
Excel(エクセル)
-
7
ADOのCursorLocationプロパティ
Visual Basic(VBA)
-
8
Accessで、メモリを開放するタイミング
その他(データベース)
-
9
VBSでADO接続に失敗した場合にフリーズする
Visual Basic(VBA)
-
10
VBAでレコードセットの総レコード数を取得する方法
Access(アクセス)
-
11
ADODB.Streamで開いたファイルに追記する
その他(プログラミング・Web制作)
-
12
Excel 1セル当りの文字数が255文字を超える場合のADOからの取
その他(プログラミング・Web制作)
-
13
ADODBでの行番号の取得、もしくはCSVのインポートについて
Visual Basic(VBA)
-
14
【Excel】【VBA】実行時エラー メモリ不足
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
EXCEL-VBAにてADOのレコードセ...
-
大容量のメモリ確保をスワップ...
-
ファミコンって8ビットしかない...
-
C#で別クラスインスタンスのメ...
-
ファイルマッピング関数で失敗
-
VBAの配列サイズとメモリに関して
-
プログラム領域の算出方法
-
LoadLibraryしたらFreeLibrary
-
クイックソート
-
【C言語】再帰が時間がかかる...
-
プログラムの最大メモリ消費量...
-
エクセルのメモリ使用状況/Appl...
-
C言語における再帰呼び出しの...
-
動的確保できるメモリ容量
-
GetAdapterInfoによりマックア...
-
メモリが不足しています(VBA)
-
メモリアロケーション異常の発...
-
Macターミナルで実行中のプログ...
-
緯度、経度の 10進法と 60進法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
「ヒープサイズの設定」て何?
-
エクセルのメモリ使用状況/Appl...
-
エクセルVBA 大容量CSVファイル...
-
EXCEL-VBAにてADOのレコードセ...
-
バッチファイルでの実行EXEのメ...
-
メモリ不足
-
メモリのセグメント違反の解決...
-
メモリが不足しています(VBA)
-
【C言語】再帰が時間がかかる...
-
ファイルマッピング関数で失敗
-
C言語:関数のメモリ上でのサイ...
-
メモリの解放の仕方
-
VC++におけるメモリ使用量について
-
メモリの消費量について
-
Bitmapを重ね合わせる方法
-
メモリを解放しないとどうなる?
-
C#のOutOfMemoryException発生...
-
メモリの解放について VB6 VBA
おすすめ情報