カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

Accessで発生するメモリー不足エラー

Accessで「メモリー不足です」という正体不明のエラーが出て困っています。
使用環境はWindows10 Pro 64bit、Access2016・2013です。

これまでも平常通り行ってきた業務をしていたら、上記のように「メモリー不足です」というエラーが発生し、データ元のAccessファイルが壊れてしまうという現象が発生しました。
原因としては多々あるようですが、原因の1つとして分かったことがあったので共有させていただければと思います。

原因の究明

まず、エラーが出るPCと出ないPCがあること。
出るPCと出ないPCの差を見つける。

発見した原因

積んでいるメモリーの差
エラーが出るPC、出ないPCの差を見たところ、OSはどちらもWindows10 Pro 64bit、CPU等も特に目立った違いがない。
記事の最後にリンクを貼っているMicrosoftのページにあるレジストリの値も全て同じ設定でした。
その他で唯一違ったのが積んでいるメモリー容量で32GBと16GBでした。

エラー解消…ではない

先ほど見つけたのがメモリーの違いということで、エラーが発生するPCの32GBのメモリーを16GBに変更しました。
すると明らかにエラーの発生する頻度が激減!

ただし、激減なので全く出なくなったわけではありません。
完全に解消したいとことなのですが、エラーが出ないPCもあるため、原因の究明はかなり難しいものと思われます。

下記URLも参考にさせて頂いたので、同じように悩まれている方がいらっしゃれば参考にしていただければ幸いです。

参考URL:
Access2010およびAccess2019で謎にエラー、「メモリ不足」でクエリー停止、ちょっとだけ解決
Access でメモリ不足エラーが発生する現象の対処策について

4,925 views

HTMLソースを取得する VisualC#

System.Net.WebClientクラスを使用してHTMLソースを取得します。

//参照を追加
using System.Net;

・単純なダウンロード

//WebClientの作成
WebClient wc = new WebClient();

//文字コードを指定(Shift_JIS)
wc.Encoding = Encoding.GetEncoding(932);

//HTMLソースをダウンロードする
string source = wc.DownloadString(url);

//後始末
wc.Dispose();

・Timeout設定ができるようにするには

//文字コードを指定(Shift_JIS)
Encoding enc = Encoding.GetEncoding(932);

HttpWebRequest req =
    (HttpWebRequest)WebRequest.Create(url);

req.Timeout = 3000;

WebResponse res = req.GetResponse();

//文字コードを指定(Shift_JIS)し、HTMLソースをダウンロードする
Stream st = res.GetResponseStream();
StreamReader sr = new StreamReader(st, enc);

source = sr.ReadToEnd();

//後始末
sr.Close();
st.Close();

文字コードについてはこちらをご覧ください。
[テキストファイルの読み込みと書き込み]

1,295 views

デスクトップのアイコン名の影を消す

Windows 10でデスクトップのアイコン名の影を消す方法です。
システムのプロパティを開き、[詳細設定]タブの[パフォーマンス]の[設定]をクリックします。
開いた[パフォーマンスオプション]の[視覚効果]タブのチェックボックスリストに
「デスクトップのアイコン名に影を付ける」チェックを外す。

1,568 views

Windows更新プログラムのアンインストール

Windowsの更新プログラムは[コントロールパネル]-[プログラムと機能]-[インストールされた更新プログラムを表示]でアンインストールすることができます。
またコマンドプロンプトからもコマンドでアンインストールできるので、その方法をご紹介したいと思います。

まず、管理者権限にてコマンドプロンプトを起動します。
そして以下のコマンドを入力します。

wusa /unintall /kb:****

****はアンインストールしたい更新プログラムの番号です。
※wusa(wusa.exe)とはWindowsUpdateのスタンドアロンインストーラーです。

ただし、重要な更新プログラムはアンインストールできません。

上記のやり方でアンインストールできない場合があります。
どういった場合かというとネット経由でインストールしたOfficeの場合です。

そのため、何か不具合があってアンインストールしたい更新プログラムがあっても、ネット経由でインストールしたOfficeの場合、KB:****としては適用されていないそうなんです。

ではどうすれば良いのか??
コマンドでOfficeのバージョンをロールバック(ダウングレード)させる必要があります。

例)バージョンを15.0.5163.1000に戻したい。
以下のコマンドを実行します。

cd c:¥Program Files¥Microsoft Office 15¥ClientX86
officec2rclient.exe /update user updatetoversion=15.0.5163.1000

officec2rclient.exeの場所はバージョンによって異なります。
上記の例ではOffice2013の場合です。

1,278 views

Windows10でスタートアップ(起動)に問題発生

Windows10にて、起動時や起動してしばらくするとブルースクリーンが表示されるエラーが発生しました。

エラーの内容は

お使いのPCまたはデバイスは修復する必要があります
必要なファイルが見つからないか、ファイルにエラーがあるため、アプリケーションまたはオペレーティング
システムをロードできませんでした。

というものです。
私が遭遇したのはwinloadに関するエラーでした。

解決方法

スタートから設定を選択。

Windowsの設定画面で[更新とセキュリティ]をクリック

左のメニューから[回復]をクリック

右から「PCの起動をカスタマイズする」のところの[今すぐ再起動]をクリック

「オプションの選択」画面が表示されたら[トラブルシューティング]をクリック

「トラブルシューティング」画面で[詳細オプション]をクリック

「詳細オプション」画面で[自動修復]をクリック
自動修復を試してみます。

自動修復で解決できない場合は[コマンドプロンプト]を実行します。

「コマンドプロンプト」が表示されたら、以下のコマンドを実行します。

X:\windows\system32>bcdboot c:\windows /s c:

「c:\windows」は、Windowsシステムのルートの場所です。「c:」はブートパーティション。

ブートファイルは正常に作成されました。と表示されればOK。
私の場合、これでWindowsの起動に関するエラーが解消しました。

732 views