いつもお世話になっています。
フォームで、クエリーを使用し、画面をスクロールを
何回か繰り返すとメモリー不足とでてしまいます。
作り方に問題があるのでしょうか?
なるべくでしたら、データを読むモジュールは書きたいたいのですか?
お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

テーブルやクエリの内容を読みたいなら「ADO」か「DAO」を使う必要があります。



使い方はこのサイトで「ADODB」や「DAO」等で検索すれば大体分かると思います。

メモリ不足についてはお使いのOSが多分Win9x(Me含む)だと思いますが、これはある程度仕方がないと割り切ってください。常駐プログラムを減らすとかすれば多少発生率を下げることは可能です。

ただこの質問の内容だけでは判断付きませんが
1.大量データをフォームで編集をしようとしている。
2.MDBファイルのサイズが大きい
3.JOIN(結合)が多い

なお、大量データを扱うのはAccessでは向きません。少量データとかレポート用にはそこそこ使えますが大量データになる場合はSQLServeやORACLEなどのDBMSをお使いになる事をお勧めします。

作り方と言っていますがどのような作り方?という説明もないのに誰が、それに対して回答できるでしょうか?

過去に回答した質問を参考URLに挙げておきます。

参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=183931,htt …

この回答への補足

メモリーは192Mつんでいまして、使用するときメモリー140Mシステムリソース68%あいて
いる状態で行いました。
フォームでスクロールを行った時にメモリー不足を表示されますが、Mターボを
使用するとメモリーが75Mあります。ということはシステムリソースが減少するのでしょうか?
ただデータ件数は70件でレコード項目は7項目です。
この件数でなるのがわからないので、もしかしてアクセス2000のバクが
または環境設定に問題があるか、なにか原因がありましたら教えて下さい。

補足日時:2002/01/30 11:19
    • good
    • 0

参考URLで技術情報を当たって見てください。


「Accessでスクロールをするとメモリ不足になる」
で検索してみましたがそれらしいものがあります。
この要因かも知れません。

参考URL:http://www.microsoft.com/japan/enable/nlsearch/
    • good
    • 0

直接の回答でなくてすみません。


最適化をなさっていますか?
アクセスはデータ的にはいじっていなくても容量が増えます。
たとえばフォームを開く、閉じる、開く、閉じるでもです。
したがって最適化をして下さい。
方法
 ツール→データベースユーティリティ→最適化
もし何かあれば具体的に補足して下さい。

この回答への補足

回答ありがとうございます。
最適化しても状態はかわりませんでした。
他に方法があれば、教えて下さい。
また、方法が無い場合は、
モジュールの記述を教えて頂けませんか?

補足日時:2002/01/28 11:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qアクセス クエリー・フォーム作成について

今アクセスで”台帳”なるものを作成しています。
クエリーで式等を入れ込んで、それを用いてフォームで入力画面を作成したのですが、テストデータはその場面で見れるものの新しいデータを入力する事が出来ません。
クエリー構造にどうやら問題があるみたいなのですが、色々試してみたものの答えが出ません。

基本的なクエリーの作成方法・想定されるミス等を教えてください。
お願いします。

Aベストアンサー

<主テーブル>   <マスター>
   :          I D 
  部 署   ⇒  部 署 主キー
  年 数   ⇒  年 数 主キー
   :          率

ということができないとのことですが
マスタの部署と年数を2つ選択して「編集」→「主キー」で設定できます。(又は鍵のマーク)1つずつ主キーに設定すると、前のが消えてしまいますよ。

又リレーションも1つずつ線を引っ張ると2つ目で「リレーションシップが既に設定されています」とでます。
そこで「はい」を選択して。編集画面にて2つ目のリレーションを表内で組んでください。

これで完成です!

ちなみにマスタのIDは何のためにあるのでしょうか、削除したりするためのキーとして持っているのでしょうか?
そのIDが別テーブルに保存されないものであったり、削除、検索などしないのであれば、特にいらないのでは?

Q削除クエリー”更新可能なクエリーでなければなりせん”のエラー

アクセス97(W2000)
削除クエリーを実行すると、上記のようなエラーメッセージが出てきます。
行ったのは、下記のような内容です。

テーブルA:品種・商品コード
テーブルB:購入月・商品コード・単価

この2つのデーブルを、商品コードで結合します。
そして、選択クエリーで、
”購入月・品種・商品コード・単価” を表示させます。
その後、品種で”R”を設定し、抽出します。

ここまでは、抽出も出来、後は、テーブルBから”品種R”だけ、
つまり、選択した内容を削除したく、選択クエリーを削除クエリーに変更し、
実行したところ、上記のエラーが発生いたしました。

削除するテーブルを指定する、サブクエリーを使用する、
など、このままではいけない、というのはわかったのですが、
具体的な方法が、よくわかりません。

今の自分の実力では、かなりの勉強不足、と思いますが、
なにがしかのアドバイスを頂ければと、思っております。
お手数ですが、どなたか、よろしくお願い申し上げます。

Aベストアンサー

テーブルの構造からして、テーブルAには同じ商品コードを持つレコードは1件のみで
テーブルBは同じ商品コードをもつレコードが複数件存在すると思われます

この2つのテーブルを商品コードで結合すると
テーブルAとテーブルBのレコードが 1:多 の形で
繋がることになります。

 テーブルA        テーブルB
品種 商品コード   購入月 商品コード 単価
R   ABC       10    ABC    100
              11    ABC    150
         ↓
購入月 品種 商品コード 単価
10    R    ABC    100
11    R    ABC    150

※テーブルBの複数件のレコードに対して、テーブルAは
 同じ1件のレコードの内容が同時に使われている

こうした 1:多 の形のクエリは「更新不可能なクエリ」になります。
(上記の例で、11月のレコードだけ消そうとしても
テーブルAのデータは10月のレコードの方にも使われているため消す事はできない
といった不整合が発生するため、更新不可とみなされる)

サブクエリを使った形にするためには
テーブルの結合は行わず、テーブルBのみを指定した削除クエリとし
商品コードの抽出条件の部分に

IN(SELECT 商品コード FROM テーブルA WHERE 品種 = "R")

という式を埋め込んでみてください。

これならば
「テーブルAから 品種 = R の商品コードを抽出し
 テーブルBの商品コードがそれと一致するレコードを削除する」
という意味のクエリになります。

SQLビューで書くならば

DELETE FROM テーブルB
WHERE 商品コード IN(SELECT 商品コード FROM テーブルA WHERE 品種 = "R")

という形になります。

テーブルの構造からして、テーブルAには同じ商品コードを持つレコードは1件のみで
テーブルBは同じ商品コードをもつレコードが複数件存在すると思われます

この2つのテーブルを商品コードで結合すると
テーブルAとテーブルBのレコードが 1:多 の形で
繋がることになります。

 テーブルA        テーブルB
品種 商品コード   購入月 商品コード 単価
R   ABC       10    ABC    100
              11    ABC    150
       ...続きを読む

QAccessで、フォームAからダイアログモードで立ち上げたフォームBを開き、フォームBを閉じた時にフォームA側でマクロを実行したい

タイトルのままなのですが、

フォームA(メインとなる画面)と
フォームB(コードの検索画面)があり、
フォームAからフォームBをダイアログモードで開いている状態から、
フォームBを閉じたときに、フォームA側でマクロを実行したいと思っています。

具体的には、フォームAにコード入力用のテキストボックスがあり、コード検索のためにフォームBを立ち上げ、コードを選択した後フォームAのテキストボックスにそのコードを入れて、そのコードの値を元にフォームAにあるコンボボックスの再クエリを行いたいのです。

コンボボックスの再クエリの方法等は理解しているのですが、
上記のような場合に、どのイベントがキックされるのかが分かりません。
どのようにすれば(どのイベントを選んでマクロを指定すれば)適切に実行できるでしょうか。

Aベストアンサー

フォームBの処理
「値の代入」
「オブジェクトの選択」
  オブジェクトの種類:フォーム
  オブジェクト名:フォームA
「再クエリ」
  コントロール名:コンボボックス名
でいかがでしょうか?

Q「ACCESS」のフォームやクエリーをHPに載せることは出来ますか?

まったくの初心者なのですが、「ACCESS2000」を
使っています。

本で見たのですが、テーブルをHPとして
公開することは出来るんですよね?

フォームやクエリーやマクロをHPに
載せることは出来るんでしょうか?

Aベストアンサー

こんにちは。itohhといいます。

「公開する」といっている意味がよくわからないのですが?

単純に「みなさん使ってください」って意味ならリンクを張ってmdbファイルをダウンロードしてもらえばよいです。

そうじゃない!検索条件をHP上で入力してもらって、検索結果を表示したい!
というなら、ASPでVBScriptを使ってHPを作成しましょう!

ただし、HP上から直接マクロを指定して動かすとか、Access2000のフォームをHP上に貼り付けるとかは出来ません!!
HPをフォームに似せて作成してください。

Qフォームからモジュール内の処理を実行したい

Sub CommandButton_Click()
集計処理
End Sub

上記のコードでは何も処理されません。集計処理はModule1に入っています。いろいろ足りないと思うのですがどのようにするとよろしいでしょうか。

Aベストアンサー

こんにちは。

>早速試してみたのですが、
> コンパイルエラー
> Functionまたは変数が必要です。
>とメッセージボックスが表示されました。

では、以下の事をご確認ください。
1.「集計処理」はModule1の中のFunctionで定義されて
 いますよね?(これは確認だけ)
2.「集計処理」の中で、別のFunctionを呼び出して
 いませんか?
 もし、呼び出している時は前回の回答と同じように
 記述してください。

ではでは・・・


このカテゴリの人気Q&Aランキング

おすすめ情報