システムwiki

msaccessがクラッシュします-より重いタスクで

JamesR. 受付中 最終更新日:2022-03-14 02:15

こんにちはマイクロソフトコミュニティ

誰かが私を助けてくれるかどうか疑問に思っています...

私は小さなホームランOfficeにMicrosoftAccessを使用しています(元々はAccess '97でしたが、何年にもわたって更新/調整/変更され、現在はOffice 2016で実行されています).コンピュータはかなり新しく、十分なメモリ/実行機能を備えており、その潜在的な容量を使用することはできません.以前は古いコンピューターでAccessプログラムを実行していましたが、この問題は現在のように新しいコンピューターでは発生しませんでした.

私のMicrosoftAccessプログラムは正常に動作しますが、特定のタスクを実行するとクラッシュすることがあります.

これは長い間(古いversionのOfficeなどで実行している場合でも)実行されてきましたが、クラッシュが頻繁に発生しているようで、現在はさらに多くの問題が発生しています.以前は、クラッシュしたときに、クラッシュしたデータの入力をやり直していたのですが、通常は2回目です.データの再入力には、毎回20~30分かかります.しかし、今では、クラッシュした場合、データを何度再入力しても、何度も何度もクラッシュします.最後に、(MS Accessプログラム以外の)別の形式でデータを入力し、クライアントが慣れていない標準以下の形式でデータを送信する必要があります.それはすべて私の時間の多くを浪費し、非常にイライラします.

100回のうち95回は正常に機能しますが、そうでない5回では、本当に面倒です.これは、より大きなレポートを入力している場合にのみ発生します(つまり、より多くのデータがAccessに入力されています).タイムアウトなどが原因で障害が発生しているのは、メモリの問題であるかのようです(?).それ以外の場合、Accessプログラムは非常に安定しており、クラッシュすることはありません.

常にクラッシュする場所で私が行っている特定のタスクは、---OutputTo-に続いて-特定のクライアントのWebサイトを開くCallShellです.コーディングは次のとおりです.

OutputToコーディングビット:

DoCmd.OutputTo acOutputReport、strNewName、acFormatPDF、 "C:\Users\User\Documents\Word Documents \"&Format(Date、 "yyyy")&"\"&strNewName&".PDF"

コールシェルコーディングビット:

ObjShell.Run( "" "C:\Program Files\google\Chrome\Application\Chrome.exe" "" "https://XXXXXX "" ")

参考までに、私は実行しています:

Microsoft Office Professional Plus Office 2016

version2110にアクセス

私が言ったように、これはほとんどの場合美しく機能します.「OutputTo」しようとしているデータ/レポートがより大きなデータ/レポートである場合にのみ失敗します.「大規模なデータ/レポート」とは、PDFドキュメントの2ページについてのみ話していることです.

どんな考えや助けも大歓迎です-----ありがとうございます!

返信リスト(回答:5)

4 #
Scottge

どこでクラッシュするか知っていますか?はシェルへの出力にありますか、それともシェルにありますか?そのルーチンでエラートラップがありますか?

問題が[出力先]である場合は、レポートのレコードソースとしてTemptableを使用することを検討してください.レポートのレコードソースからtableの作成(または削除と追加)クエリを実行してから、レコードソースを一時tableに変更します.

応答4# ->にスキップ
2 #
JamesR.

親愛なるスコットジェム

繰り返しになりますが、有益な返信をありがとうございました.

どこでクラッシュするか知っていますか?はシェルへの出力にありますか、それともシェルにありますか?そのルーチンでエラートラップがありますか?

データベースは警告なしにシャットダウンするだけです...

問題が[出力先]である場合は、レポートのレコードソースとして一時tableを使用することを検討してください.レポートのレコードソースからtableの作成(または削除と追加)クエリを実行してから、レコードソースを一時tableに変更します.

良い提案ですね. 私にとっては(スキル的には)少し注意が必要かもしれませんが、以下の圧縮がうまくいかない場合は、それを試してみます.

申し訳ありませんが、私は少し「出力先」を使用していますが、かなり長い間、プログラムのこのビットで、代わりにこのHTMLセットアップを使用しました-それはうまくいくようです(時折の完全なクラッシュを除いて/シャットダウンしましたが、出力で行っていたため、このHTMLに関連しているとは思いません.セットアップするには:

'.attachments.Add( "C:\Users\User\Documents\Word Documents \"&Format(Date、 "yyyy")&"\"&strNewName&".PDF")

J.

応答2# ->にスキップ
1 #
Scottge

さて、最初に行う必要があるのは、クラッシュする場所を特定することです.これを行うには、1つのフィールドに[はい]/[いいえ]フィールドを持つ一時tableを作成します.次に、OutputTo行の後に次の行を配置します.

CurrentDB.Execute "INSERT INTO tblTemp(TestCode)VALUES(True); "

したがって、Output Toコマンドを実行すると、フィールドがTrueに設定されます.このようにして、OutPutToコマンドが実行されたかどうかを確認できます.

5 #
DanielP

手始めに、Accessの新しいversionごとに、RAMの消費量が増え、実際の使用量が減っていきます. これは、64ビットインストールが役立つ場合があります.

インストールはどの程度ですか?

VBAコードはエラーなしでコンパイルされますか?

フロントエンドとバックエンドの両方で、データベースを最後に圧縮したのはいつですか.

フロントエンドとバックエンドの両方で、データベースのファイルサイズはどれくらいですか?

これが発生したときに受け取る正確なエラーメッセージは何ですか?

応答5# ->にスキップ
3 #
JamesR.

親愛なるダニエル

お返事ありがとうございます.

ビットネス?

Microsoft®Access®2016MSO(version2110Build16.0.14527.20234)32ビット

VBAコードはエラーなしでコンパイルされますか?

以前に(VBAコードで'文字を使用して)エラーメッセージ命令を「コメントアウト」していたので、エラーメッセージを表示できるように、それを元に戻しました. 次に、通常の「クラッシュ」を繰り返すようにテストを行いました.

残念ながら、MSACCESSは即座に完全に閉じます. 閉じる前に表示されるエラーメッセージはありません.

フロントエンドとバックエンドの両方で、データベースを最後に圧縮したのはいつですか.

昨日、最初の「クラッシュ」が数週間続いた後、データベースを圧縮しました.

MSACCESSの「データ」ファイルを圧縮できるとは知りませんでした...これが「バックエンド」の意味だと思いますか? それは簡単ですか?

フロントエンドとバックエンドの両方で、データベースのファイルサイズはどれくらいですか?

データ:141kb

データベースフロントエンド:うわー...! 確認したところ、100万kb以上でした. 通常よりもはるかに多い. 私は過去数週間、非常に複雑なクエリをいくつか行ってきました(私の仕事には必要ありませんが、いくつかの図を見るのにそれらを使用しました). それらを別のデータベースに削除しましたが、元のデータベースは400kbに縮小されました. それがお役に立てば幸いです! 以前は、フロントエンドが約250kbの場合、同じ理由で時々クラッシュしていましたが、それほど頻繁ではないようでした.

これが発生したときに受け取る正確なエラーメッセージは何ですか?

データベースが突然シャットダウンするだけなので、エラーメッセージは表示されません.

J.