
No.3ベストアンサー
- 回答日時:
私はACCESS2000を使用しています。
最適化するときは次のように注意しています。
(1)コードを閉じてから最適化する。
===コードの閉じ方===
モジュールをデザインで開き、右上内側の閉じるボタンをクリックしてコードを閉じる。灰色の背景が見えるまで全て閉じる。(※1)
コンパイルする。(コンパイルが通ったら)上書き保存する。AccessDBを閉じる。
最適化する。
Access2000になってからコードが開いた状態で最適化やフォームの削除、モジュールの削除をするとDBが壊れるということを経験しました。
(2)AccessDBは閉じてから最適化する。
Accessウインドウの中にAccessDBが開いている状態で最適化するとちゃんと最適化できないようです。
Accessウインドウだけが開いた状態から最適化します。
※1)
開いているコードが多すぎて手作業で閉じるのは大変という事でしたら、
コードを閉じる関数を持っています。コメントにご連絡ください。
KAERU_VXV様、ご回答いただきありがとうございました。
フォームやレポート等のオブジェクトを全て閉じて、最適化するという手法、私も経験があります。SendKeysステートメントを使ったりとかね。あれは無茶だと今では思いますが、そのシステム自体ではちゃんと動いてました。懐かしい。
今回、CSVを1つのワークテーブルに読み込んで、Excelオブジェクトを生成するという簡単なシステムなので、それゆえ、ユーザーに「最適化ボタンというのがあるのでこれを実行してください。でないと壊れます!」と言いたくないという思いがありまして。だったら、終了時に無意識のうちにやってくれればユーザーにとってもベストだと考えました。
とりあえず、SEと相談して、決めようと思います。仮に壊れてもデータはどうせワークデータなので、損失はないかと。ただ、MDBのファイル名が変わっちゃうだけなのでね。
それにしても皆さんも苦労されていますね。ちょっと面白かったです。ありがとうございました。
No.2
- 回答日時:
Microsoftのサポートには既知の問題として
認識はしているものの有効な対処はされていないようです。
http://support.microsoft.com/kb/842580/ja
となるとAccessのオプション(終了時に最適化)だけでなく
ツールバーからの行うか、マクロのAutoExecに最適化を
登録して起動時に行うか、
マクロでCompactDatabaseメッソドを使用して
適当なタイミングに実行するとか。
最適化を行ってから終了するようにするとか。
http://www.accessclub.jp/samplefile/samplefile_2 …
nekon様、ご回答いただきありがとうございます。
DAOのCompactDatabaseメソッド、私もやったことがあります。わざわざそれ用のVBのEXEを作ってAPI等駆使してとか、いろいろと。97の頃からやっているので、2000で終了時オプションとして出たときは「これは使わない手はないだろう」と思ったんですけどねぇ。ちょっとSEと相談して決めようと思います。ありがとうございました。
No.1
- 回答日時:
>たまにファイル名が戻らない場合があります
最適化時に作成されるワークファイルのdb1が残ってしまうのは最適化の際に空き容量が不足した状態になった時など残ってしまいますが・・。
その辺はどうでしょうか。空き容量が不足しているとかメモリ不足の状態になっているとか。
O_cyan様、ご回答ありがとうございます。
また、お返事が遅れて申し訳ございません。
ディスク・メモリの容量不足は全く問題はないようです。ただ、該当MDBを直接ダブルクリックして開き、閉じる場合、失敗する場合が多いようです。db1.mdb→元のMDBに戻るときの、フォルダ画面再描画が原因かなぁ?となんとなく感じています。ショートカットからの起動だと、今のところ失敗していません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
accessのmdbが勝手にできている?
その他(データベース)
-
Accessでクエリを完了できません。と出ます。
その他(データベース)
-
既に使用されているので、使用できませんでした
Access(アクセス)
-
-
4
データベースの最適化をマクロでしたい
その他(データベース)
-
5
Database mdb について
その他(コンピューター・テクノロジー)
-
6
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
7
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
8
ACCESS2010の最適化が中断される
その他(データベース)
-
9
Database.mdbと言うファイル
Access(アクセス)
-
10
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
11
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
12
ACCESS 複数のフォームから同一テーブル参照
Access(アクセス)
-
13
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
14
Access→Excelへエクスポートすると日付の表示形式が変化する
Excel(エクセル)
-
15
スクロールバーをVBAで操作したい
Access(アクセス)
-
16
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
17
ACCESS VBA でのエラー解決の根拠がわかりません エラー「イベントプロパティに指定した式・・
Access(アクセス)
-
18
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
19
ACCESSのVBAにてExcelに行を追加したい
その他(データベース)
-
20
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
平成20年 春期 基本情報技術者 ...
-
OracleのSQL*PLUSで、デー...
-
決定性有限オートマトン
-
最新の日付とその金額をクエリ...
-
SELECTの結果で同一行を複数回...
-
エクセル関数 文字(ハイフン...
-
複数テーブルのMAX値の行データ...
-
Recordset.FindFirstについて
-
実績累計の求め方と意味を教え...
-
HTMLファイルから、特定の部分...
-
GROUP BYを行った後に結合した...
-
GROUP BYを使ったSELECT文の総...
-
<SQL>条件付きで最小値レコード...
-
商品テーブルからカテゴリ別の...
-
JSPのNULLレコード表示について...
-
日付データの抽出方法を教えて...
-
VBAの質問(続きです。)
-
空白文字とスペースの検索
-
キーが同じを複数行を1行にま...
-
MS-DOSコマンドプロンプトを途...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access終了時の最適化が失敗?
-
CREATE テーブルでの複数外部...
-
Order by句でバインド変数を使...
-
沿線コード
-
Access2000の重複チェック
-
SQL文の書き方
-
10営業日前の日付を取得したい...
-
DLookupの設定で・・・
-
また正規形について。
-
ヤマト急便のチェックデジット...
-
Access2007 データ型エラーに...
-
Access Dlookup関数について
-
WordPress(ワードプレス)に関...
-
SQLの題材
-
困っています。ORACLE_SQL 複数...
-
oracleでは出来るけど、access2...
-
平成20年 春期 基本情報技術者 ...
-
同一コード毎に最新の名称を取...
-
Excelファイルのデータをテーブ...
-
【SQL】またぎデータの検索の仕方
おすすめ情報