2016-05-11 3 views
3

多数のサブフォームを表示するフォームを持つAccessアプリケーション(32ビットOffice、Windows 7)があります。各サブフォームは、特定の工場階のステータスに関する情報を表示し、同時にすべてを表示可能にする必要があります。MS Accessが多すぎるサブフォームエラー "この操作を実行するのに十分なメモリがありません"

追加のサブフォームを追加すると、「この操作を実行するのに十分なメモリがありません。不要なプログラムを閉じて、操作を再試行してください。

フォーム以外のコードやオブジェクトのないテスト済みのテストデータベースをいくつか使用して、私がテストしているマシンに応じて、サブフォームの数が80〜130の場合にこのエラーが発生することがわかりました。私のマシンにはたくさんの空きRAMがあり、Accessデータベース(およびメインフォーム)は、それぞれが別々のAccessインスタンスにある限り、複数のコピーを開くことができます。

私はアクセス制限、メモリ処理などに関する多くの研究を行ってきましたが、そこには何の助けもありませんでした。私のシステムメモリ上のデータベースの要求を監視することによって、私はその領域で何の問題も見ることができません、そして、私はエラーメッセージが赤ちゃんであるかどうか疑問に思っています。私は、アプリケーションに割り当てられたリソースを増やす方法を見つけたり、何らかの形でサブフォームを追加できるようにしたいと考えています。

アイデア?

enter image description here

+1

エラーメッセージは間違いです。問題はシステムメモリではなく、実行中の内部リソースです。私はあなたがその割り当てを変更することはできないと思っています。 ---しかし、> 100のサブフォームは同時にですか?これがあなたのデータを表示する最善の方法だとは思えません。フォームのスクリーンショットを共有できますか? – Andre

+0

データの表示をフォームからレポートに変更することをお勧めします。 Andreが指摘しているように、plsはあなたが達成しているもののスクリーンショットを投稿します –

+0

あなたの返答に感謝します!私は簡単なスクリーンショットを投稿しました。この多くのサブフォームを使用するのは珍しいことですが、この場合は必要です。このフォームは、工場フロアの大画面に表示され、従業員と管理者は生産変数を監視できます。フォームは自動的にリフレッシュする必要があるため、レポートを使用することはできません。マネージャーはセルをクリックして値を入力したり編集したりするので、これも対話形式です。私は8時間のタイムスロットでそれぞれ8-10セル(行)を表示することができます。一度それを超えようとすると、テーブルとコードが削除されてもエラーが発生します。 – GSR

答えて

1

私は非常によく、この問題を知って、それがサブフォームに関係しています。数年前、私は36ヶ月生産計画の申請を行いました。これはあなたの申請と非常によく似ています。

1つの行からすべてのコントロールを配置するサブフォームを1つだけ使用するソリューションを見つけることをお勧めします。 t1、t2、t3、t4などのコントロールに名前を付け、フィールドにコントロールをバインドするVBAコードを入力します。

長期的には、私はMS Accessから離れ、C#とXAMLを使用することをお勧めします。これはもっとモダンなものです。 C#/ WinFormsを使用しても、Accessよりも柔軟性があります。 WinFormsは、さまざまな画面サイズと解像度で少しフレキシブルです。

+0

更新:私はまだこの問題を解決するスイッチをどこか(レジストリ?)見つけるのが好きです。その間、64ビットAccess 2010ランタイムバージョンのインストールを使用してテストを実行しました。 300を超えるサブフォームを問題なく表示することができました。誰もが64ビットアクセスに変換し、必要に応じてコードを書き直し、現代の世界に入り込む必要があるかもしれません。 – GSR

関連する問題