Accessで作ったVBAの修正・変更を、バッチ様なプログラムを作成して、それをダブルクリックするだけで、手持ちのAccessのファイルが修正されるようなものをAccessで作成することはできるのでしょうか?またどのように作成するのか、参考になるURLなどがあれば教えてください。Accessは2003を利用しています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/09/24 10:00:28
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:fester No.1

回答回数124ベストアンサー獲得回数20

ポイント35pt

検証していませんが、次の方法があるかと思います。


1.データ用MDBとプログラム用MDBとに分けておき、後者を差し替える。


2.標準モジュールを差し替える。削除-->インポート

Application.VBE.ActiveVBProject.VBComponents.Remove Application.VBE.ActiveVBProject.VBComponents("Module1") 
Application.VBE.ActiveVBProject.VBComponents.Import "C:\Module1.bas"

3.標準モジュールを書き替える

Application.Modules のオブジェクトモデルを使う。

次の例は、指定した標準モジュールにプロシージャを新規に追加する例です。

    Application.DoCmd.OpenModule "Module1" '開いておくのがミソらしい
    With Application.Modules("Module1")
        .InsertText ("Sub Hoge()" & vbCrLf)
        .InsertText ("    MsgBox ""Hello"" " & vbCrLf)
        .InsertText ("End Sub" & vbCrLf)
    End With

Module オブジェクトは、いろいろなプロパティ、メソッドを持っています。

インテリセンスとヘルプで確認すると良いかと。

部分的に修正するのが面倒であれば、

DeleteLines

で全部消して、

InsertText

で新規に追加して保存するとか、

Application.Modules("Module1").AddFromFile "C:\Module1.bas"

2のようにファイルから取り込むとかいった方法がありそうです。


※ただし、こちらのページを見ますとセキュリティ設定が必要になるような事が書いてあります。

id:hiro_tt55

詳しく・丁寧なご回答ありがとうございます。

変更するものが、Access初心者のため、できましたら、ファイルをダブルクリックするだけで、変更できればと思っています。

そのようなものをAccessを使って作成することが可能でしょうか?

2008/09/19 17:12:49
id:fester No.2

回答回数124ベストアンサー獲得回数20

ポイント35pt

変更用のプログラムは何もACCESSでなくても良いですよね。

ACCESSでやるのであれば、ダブルクリックで起動したときに処理を走らせればよいですし、

EXCELでもできるでしょうし・・・

私のお勧めはWSH(VBScriptのバッチ)ですね。


Windows Scripting Host (WSH) にて、VBScript で Accessオブジェクトを操作すればできます。

WSHについて

http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

http://www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_01.html

VBScriptでAccessオブジェクトを作る

http://www.happy2-island.com/vbs/cafe02/capter00501.shtml

などが参考になると思います。



ですが・・・

余談ですが私でしたら、プログラムコード部分を書き替えたり、差し替えたりするのはしないとおもいます。

1.最新MDBを配布

2.ユーザがメニューから「旧版のデータを取り込み」のボタンを押して、

  旧データをすべてインポート

  (この部分のプログラムを作成する必要がある)

3.旧版の破棄

というような手順でやるかもしれません。

(テーブルのインポートとかであればセキュリティ制限にかかることもないと思います)

id:hiro_tt55

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

参考にさせていただきます。

2008/09/24 10:00:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません