Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1063 / 2272 ツリー ←次へ | 前へ→

【8932】フォームの肥大化 ひろのしま 07/1/2(火) 23:55 質問[未読]
【8949】Re:フォームの肥大化 小僧 07/1/9(火) 10:17 回答[未読]
【8951】Re:フォームの肥大化 ひろのしま 07/1/9(火) 13:24 お礼[未読]
【8954】Re:フォームの肥大化 小僧 07/1/10(水) 9:18 回答[未読]

【8932】フォームの肥大化
質問  ひろのしま  - 07/1/2(火) 23:55 -

引用なし
パスワード
   ただ今会社で
進捗管理_Data.mdb(仮名)
進捗管理_Form.mdb(仮名)
というツールを作成し、管理しています。

進捗管理_Form.mdbはリンクテーブルで
進捗管理_Data.mdbのデータを操作しています。

その上で、進捗管理_Data.mdbの容量が肥大化するのは分かるのですが、
進捗管理_Form.mdbも肥大化していってしまいます。
本来、テーブルを持たない進捗管理_Form.mdb側が肥大化してしまうのは
いけないことなのでしょうか?
肥大化するのには原因があるのでしょうか。
よろしくお願いします。
(最適化の方法は質問しません)

【8949】Re:フォームの肥大化
回答  小僧  - 07/1/9(火) 10:17 -

引用なし
パスワード
   ▼ひろのしま さん:
おはようございます。

>その上で、進捗管理_Data.mdbの容量が肥大化するのは分かるのですが、
>進捗管理_Form.mdbも肥大化していってしまいます。
>本来、テーブルを持たない進捗管理_Form.mdb側が肥大化してしまうのは
>いけないことなのでしょうか?
>肥大化するのには原因があるのでしょうか。

進捗管理_Form.mdbを開いて
[ツール] ⇒ [オプション] ⇒ 表示タブ にある
システムオブジェクトにチェックを入れた後

MSysObjects というテーブルを開いてみて下さい。

フォームにコンボボックス等を配置し、
その値集合ソースがリンクテーブルだった場合

~sq_cフォーム名~sq_cコンボ名

の様な名前のオブジェクトがある事が解るかと思われます。


こういった隠されているオブジェクトが
肥大化しているのではないでしょうか。


関係のない話でしたら申し訳ありません。

【8951】Re:フォームの肥大化
お礼  ひろのしま E-MAIL  - 07/1/9(火) 13:24 -

引用なし
パスワード
   小僧さん。ありがとうございます。
内部で隠れている MSys〜のテーブルのうち、
・MSysAccessObjects
・MSysACEs
のテーブルの件数が最適化後に減少するという現象が起きていました(駄洒落)。

MSysObjectsのテーブルにNameという列があり
>~sq_cフォーム名~sq_cコンボ名
こういった名前のものがありましたが、
目安となるサイズの数値みたいなものは見当たりませんでした。

現在のところ確認できる事は以上でした。


▼小僧 さん:
>▼ひろのしま さん:
>おはようございます。
>
>>その上で、進捗管理_Data.mdbの容量が肥大化するのは分かるのですが、
>>進捗管理_Form.mdbも肥大化していってしまいます。
>>本来、テーブルを持たない進捗管理_Form.mdb側が肥大化してしまうのは
>>いけないことなのでしょうか?
>>肥大化するのには原因があるのでしょうか。
>
>進捗管理_Form.mdbを開いて
>[ツール] ⇒ [オプション] ⇒ 表示タブ にある
>システムオブジェクトにチェックを入れた後
>
>MSysObjects というテーブルを開いてみて下さい。
>
>フォームにコンボボックス等を配置し、
>その値集合ソースがリンクテーブルだった場合
>
>~sq_cフォーム名~sq_cコンボ名
>
>の様な名前のオブジェクトがある事が解るかと思われます。
>
>
>こういった隠されているオブジェクトが
>肥大化しているのではないでしょうか。
>
>
>関係のない話でしたら申し訳ありません。

【8954】Re:フォームの肥大化
回答  小僧  - 07/1/10(水) 9:18 -

引用なし
パスワード
   ▼ひろのしま さん:
おはようございます。

>小僧さん。ありがとうございます。
>内部で隠れている MSys〜のテーブルのうち、
>・MSysAccessObjects
>・MSysACEs
>のテーブルの件数が最適化後に減少するという現象が起きていました(駄洒落)。


MSysObjects についてなのですが、
Typeというフィールドが存在しますよね。

色々といじっているとなんとなく解るとは思うのですが
・テーブル ⇒ Type = 1
・クエリ  ⇒ Type = 5
・フォーム ⇒ Type = -32768

などの数値となっています。


>>~sq_cフォーム名~sq_cコンボ名

という名前のオブジェクトについては
Type = 5 となっているかと思われます。

フォーム上に値集合ソースを指定したコンボボックスやリストボックスが
存在する場合、データベースウィンドウ上には表示されておりませんが
Access内にはクエリオブジェクトが存在しているという事が解るかと思われます。

コンボボックスの基になるソースのレコード数が多かったり、
またコンボボックスの個数そのものが多かったりすれば
クエリオブジェクトのサイズの増加に繋がり
それが肥大化の原因となっているのではないでしょうか。

また最適化してファイルサイズが減るのは
何かの際に一時的に作られたオブジェクトが
破棄されるからだと考えられますね。

1063 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078205
(SS)C-BOARD v3.8 is Free