-PR-
解決
済み

Accessの最適化

  • 暇なときにでも
  • 質問No.4527
  • 閲覧数649
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 66% (2/3)

難しい専門用語がよくわからない為、したい作業をどう説明すればいいのかわかりませんが、最適化ボタンというのを作って、それを押すと今開いているファイルが最適化される、という作業は作れるのでしょうか? 
もしできるのなら、詳しく教えてください。
よろしくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 46% (643/1383)

正しい方法で「最適化」を自動実行するのは、簡単ではありません。

っていうことで、状況によっては安全ではないのかもしれませんが、(かつ、プログラム的にもまっとうなものとはいえませんが、)SendKeysを使ったやり方を…

ボタン[コマンド0]を作成し(名前は何だっていいです)、そのイベントプロシージャをこんな感じにしてください。

Private Sub コマンド0_Click()
  SendKeys "%TDC"
End Sub

見ての通りSendkeysでメニューを強制的に実行してしまうやり方です。
ツールバーの内容を書き換えたりしている場合は、適宜改造する必要があります。
お礼コメント
kirika

お礼率 66% (2/3)

ARCさん、わかりやすい回答ありがとうございます。
早速、教えて頂いたとおりSendkeysを使って実行してみました。 ちゃんと動いたので感激です!!

>ツールバーの内容を書き換えたりしている場合は、適宜
>改造する必要があります。
この適宣改造というのは、かなり難しい作業になるんでしょうか? もしよろしければまたご指導ください。
よろしくお願いします。 
投稿日時 - 0000-00-00 00:00:00
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.2
レベル13

ベストアンサー率 26% (511/1924)

確かAccessの最適化は、データベースを開いたままでは 実行できなかったはずですから、そのボタンを作った フォームが保存されているMDBファイルは最適化する ことはできないでしょう。 別途メンテナンス用のアプリとしてなら可能でしょうけ ど。 ヘルプで CompactDatabeseメソッド というのを探して 見てください。第一パラメータの olddb は閉じる必要 がありますと書かれ ...続きを読む
確かAccessの最適化は、データベースを開いたままでは
実行できなかったはずですから、そのボタンを作った
フォームが保存されているMDBファイルは最適化する
ことはできないでしょう。

別途メンテナンス用のアプリとしてなら可能でしょうけ
ど。
ヘルプで CompactDatabeseメソッド というのを探して
見てください。第一パラメータの olddb は閉じる必要
がありますと書かれています。

  • 回答No.3
レベル13

ベストアンサー率 46% (643/1383)

>この適宣改造というのは、かなり難しい作業になるんでしょうか?  ん~、例えば、[ツール]-[ユーザ設定]で、[ツール]メニューのショートカットキーをAlt+T以外に書き換えた場合、(例えば Alt+Y) Private Sub コマンド0_Click()   SendKeys "%YDC" End Sub のように書き換える必要があります。 あ ...続きを読む
>この適宣改造というのは、かなり難しい作業になるんでしょうか? 

ん~、例えば、[ツール]-[ユーザ設定]で、[ツール]メニューのショートカットキーをAlt+T以外に書き換えた場合、(例えば Alt+Y)

Private Sub コマンド0_Click()
  SendKeys "%YDC"
End Sub

のように書き換える必要があります。

あと、ユーザがわけも分からずに、[ツール]メニューを削除してしまったりすることも考えられますよね。

ってわけで、SendKeysを使用する場合、[ユーザ設定]の項目を、ツールバーから削除してから配布するってのが無難だと思います。(もしくは、メニューを自動で再登録するプログラムを書くか…)

それ以外には、フォーム上にショートカットキーがダブるコントロールが置かれていたりすると、これもまた問題になったりするでしょう。
これについては、作成時に注意するだけで解決できますよね。

参考までに、もうちょっとまっとうな方法を…(概要だけですが)

・最適化を実行する外部プログラムを作成する
・「最適化」ボタン押下で、外部プログラムを起動し、メインプログラムを終了させる。
-ここから外部プログラム内
・XXX.LDBが消滅するまで休止する
・最適化を実行
・メインプログラムを起動
-ここまで
・ボタンが押される直前の状態を再現する(省略可)

なんだか複雑そうでしょ?
お礼コメント
kirika

お礼率 66% (2/3)

ARCさん、どうもありがとうございました!!
できないと思っていた自動最適化ですが、何とか出来そうな感じです。Sendkeysの方法と外部プログラムを起動する方法、両方試してみようと思います。
外部プログラムの方は、かなりややこしそうなので、
私に出来るかどうかはわかりませんが。。

また問題が発生した時、よろしくお願いします。
本当にどうもありがとうございました!!
投稿日時 - 0000-00-00 00:00:00
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ