• ベストアンサー

Accessの最適化

難しい専門用語がよくわからない為、したい作業をどう説明すればいいのかわかりませんが、最適化ボタンというのを作って、それを押すと今開いているファイルが最適化される、という作業は作れるのでしょうか?  もしできるのなら、詳しく教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

正しい方法で「最適化」を自動実行するのは、簡単ではありません。 っていうことで、状況によっては安全ではないのかもしれませんが、(かつ、プログラム的にもまっとうなものとはいえませんが、)SendKeysを使ったやり方を… ボタン[コマンド0]を作成し(名前は何だっていいです)、そのイベントプロシージャをこんな感じにしてください。 Private Sub コマンド0_Click()   SendKeys "%TDC" End Sub 見ての通りSendkeysでメニューを強制的に実行してしまうやり方です。 ツールバーの内容を書き換えたりしている場合は、適宜改造する必要があります。

kirika
質問者

お礼

ARCさん、わかりやすい回答ありがとうございます。 早速、教えて頂いたとおりSendkeysを使って実行してみました。 ちゃんと動いたので感激です!! >ツールバーの内容を書き換えたりしている場合は、適宜 >改造する必要があります。 この適宣改造というのは、かなり難しい作業になるんでしょうか? もしよろしければまたご指導ください。 よろしくお願いします。 

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

>この適宣改造というのは、かなり難しい作業になるんでしょうか?  ん~、例えば、[ツール]-[ユーザ設定]で、[ツール]メニューのショートカットキーをAlt+T以外に書き換えた場合、(例えば Alt+Y) Private Sub コマンド0_Click()   SendKeys "%YDC" End Sub のように書き換える必要があります。 あと、ユーザがわけも分からずに、[ツール]メニューを削除してしまったりすることも考えられますよね。 ってわけで、SendKeysを使用する場合、[ユーザ設定]の項目を、ツールバーから削除してから配布するってのが無難だと思います。(もしくは、メニューを自動で再登録するプログラムを書くか…) それ以外には、フォーム上にショートカットキーがダブるコントロールが置かれていたりすると、これもまた問題になったりするでしょう。 これについては、作成時に注意するだけで解決できますよね。 参考までに、もうちょっとまっとうな方法を…(概要だけですが) ・最適化を実行する外部プログラムを作成する ・「最適化」ボタン押下で、外部プログラムを起動し、メインプログラムを終了させる。 -ここから外部プログラム内 ・XXX.LDBが消滅するまで休止する ・最適化を実行 ・メインプログラムを起動 -ここまで ・ボタンが押される直前の状態を再現する(省略可) なんだか複雑そうでしょ?

kirika
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.2

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

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • iPhoneSEで使っているエレコム製のフィルムが、少しの衝撃で剥がれる問題についての相談。
  • 同じ製品を2回購入したが、どちらもすぐにフィルムが剥がれてしまう結果に悩んでいる。
  • より良い貼り付け方や製品自体の耐久性についての情報を求めている。
回答を見る

専門家に質問してみよう