Microsoft Access 掲示板

accdeファイルの作成をフォーム上のボタンから作れますか?

5 コメント
views
4 フォロー

現在、作成したファイルを複数人で使用するため、accdeファイルで配布しています。
Accessのウインドウ左上の[ファイル]→[名前を付けて保存]→[ACCDEの作成]でコンパイルして作っているのですが、この作業が煩わしく、フォーム上のボタンでVBAからこの操作をすることは可能でしょうか?
vba内で拡張子だけ変えて自分自身をバックアップしても、まともなファイルは作れないことはわかりました。

もし上記が技術的に可能であればご教授頂きたくお願いします。ボタンに埋め込みたいのでコードでも、マクロビルダーでも構いません。
よろしくお願いいたします。

nanana
作成: 2022/02/11 (金) 10:32:23
通報 ...
1
りんご 2022/02/11 (金) 15:54:48 c564b@0e907

 配布のやり方、やった事がないのに回答して申し訳ないですが、1回コンパイルして出来上がったファイルをコピペ配布するようなイメージを持っています。状況は、Aさんに配布する為に、1回コンパイル、続けて、Bさんに配布する為に再度もう1回コンパイル…という事なのでしょうか?それとも、例えば、50個のAccessファイルを手作業で50回コンパイルするのは大変という事でしょうか?

4
りんご 2022/02/13 (日) 04:12:20 c564b@0e907 >> 1

vba内で拡張子だけ変えて自分自身をバックアップしても

 ググったら類似質問回答がありました。確かにあのバックアップの真似では無理そうですね。

フォーム上のボタンでVBAから[ファイル]→[名前を付けて保存]→[ACCDEの作成]は可能でしょうか?

 T'sWare Access Tips #179 ~もう1つのAccessデータベースを開く方法(COM版
 CommandBars.ExecuteMsoメソッド
 idMsoの調べ方
 あれやこれやとやったんですけど、accde作成ダイアログにうまくSendkey出来ずに詰みますね。
【EXCEL VBA | ノート】Windowハンドルを取得して、ファイル選択ダイアログボックスを操作する
 WindowsAPI関数まで手を広げれば出来るのかもしれないけれど、挫折しました。

>> 3

 あぁぁ〜さすがですわ。よく練られていますね。

2
nanana 2022/02/11 (金) 17:33:02 e48ae@6eb0c

ファイルはリンクテーブルで構成しています。Aさん、Bさん、Cさんはそれぞれ遠く離れた別の場所にいて、別々ののサーバーで閲覧をします。しかしそれぞれが別の拠点から大元のリンクテーブルにアクセスすると動作速度が遅くなるため、それぞれのサーバーにリンクテーブルを定期的にコピーし、それを閲覧専用として利用します。そのためそれぞれの環境に応じてリンク先をVBAで変更しています。
変更したものをそれぞれコンパイルして配布しているんですが、それって結局おっしゃるとおり50個のACCDEファイルができるということになりますね。なのでボタン一つでできないかなあという相談です。 

3

50個のACCDEファイルを作成するという考え方ではなく、
ACCDEファイルの起動時にリンクテーブルのリンク先を適切に変更する処理を持たせれば、配布するACCDEファイルは一つですみます。

元のAccdbファイルに、リンクテーブルのリンクが切れていたらリンク先を変更するFunctionを作成しておきます。
変更するリンク先は、データベースファイルと同じフォルダーにあるテキストファイルにリンク先パスを格納しておいて、それを参照するようにします。
このFunctionをAutoExecマクロで起動時に実行するようにします。

最初に配布するときだけ、リンク先パスを格納したテキストファイルと一緒に配布して、同じフォルダーに入れておいてもらいます。

次回から、Accdeファイルのみ配布すれば、最初の起動時にリンク先を変更してくれます。

5
名前なし 2022/02/13 (日) 15:13:15 27818@a9346

お二方ともご回答ありがとうございます。さすがです。
Aさん、Bさん、CさんともそれぞれログインIDとパスワードを設定していますので、ログインボタンでそれをトリガーにしてリンク先を切り替えるように組んでみます。

本当にありがとうございました。