- ベストアンサー
アクセス起動時にVBAを実行させるには?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 > 標準モジュールに ・・・すみません。 AccessよりExcel等の方に慣れている方の場合、「VBA=マクロ」と 思われることが多いというのを忘れていました(汗) データベースウィンドウ(テーブルやクエリ、フォームなどの一覧が表示 される画面)に、『マクロ』というのがあると思います。 そこで作成する方の『マクロ』で、VBAで組む『モジュール』とは別の ものになります。 そちらで、『AutoExec』という名前のマクロを作成してください。 ※添付画像は、『AutoExec』マクロのデザインビューの例になります。 (「マクロ1」がSubプロシージャの場合は、戻り値はなくても構わない のでとりあえずFunctionプロシージャに変更した上で、 『AutoExec』マクロの『アクション』欄に「プロシージャの実行」を 指定し、画面左下でそのプロシージャ名を指定します: 末尾に「()」(括弧)が必要だったはずなのでご注意のほど)
その他の回答 (1)
- DexMachina
- ベストアンサー率73% (1287/1744)
「Autoexec」または「AutoExec」という名前のマクロを作成すると、 そこに記述されたアクションが、起動時に自動的に実行される ようになります。 ですので、 a)マクロ1の内容をこちらに転記する b)マクロ1の名前を上記の名前に変える c)上記のマクロの『アクション』に「マクロの実行」を追加し、 その『マクロ名』引数に「マクロ1」を指定 のどれかやりやすい方法で対応すれば、Okです。 なお、『起動時の設定』と同様、Shiftキーを押しながら起動した 場合は、このマクロも無視されますので、併せて参考まで。
お礼
早速のご回答ありがとうございます。 しかしうまくいきません。 試しに、b)の方法で 標準モジュールに Sub AutoExec() MsgBox "test" End Sub としてみましたが 起動時に動きません。 何かおかしいでしょうか?
関連するQ&A
- Accessのファイルサイズ縮小について
Access 2000で作成したmdbファイルを Access 2013環境で使用しています。 ・テーブルのみのmdbファイル(1)があります。 mdbファイル(1)の中には、テーブルオブジェクトが1つあり、フィールドが1つ、 フィールドサイズは255です。レコード件数は、36万5000件程度あります。 ・フォームやクエリ、マクロ、mdbファイル(1)と リンクテーブルでつないでいるmdbファイル(2)があります。 mdbファイル(1)のファイルサイズが、90MBに達しており mdbファイル(2)を開いたり、何か処理させるのを遅くしているのではないか と思っています。 他の方の質問をチェックしましたが、結果は 最適化について オプション→現在のデータベース→閉じるときに最適化する→チェックON済み 手動で最適化する→変化なし。 MDBをMDEに変換する Access 2013では、バージョンが違うので変換できないようです。 accdb形式に変換→accde形式に変換しましたが、変化なし (そもそも、ファイル(1)はテーブルのみで、マクロやプロシージャは無いので、 意味が無かったかも) となっており、対処法が見つからなくて困っています。 何か良い案はないでしょうか。
- ベストアンサー
- その他(データベース)
- アクセスでauto_openは使えない?
エクセルの場合は、ブックを開いたと同時にマクロを実行させたい時は、 auto_openと言うマクロを標準モジュールに作れば可能ですが、 アクセスVBAの標準モジュールに、auto_openというプロシージャーを作って、 アクセスを再起動しても何も起こりません。 アクセスにおいて ファイルの起動と同時にマクロを実行させたいのなら、 どこかのフォームのOpenイベントに実行させたいコードを記載して、 起動時の設定で、そのフォームを選択するしかないのでしょうか?
- ベストアンサー
- オフィス系ソフト
- ACCESSのマクロに関しまして
お願いします。 ACCESS97で追加クエリを作成し、その後自動起動にしようと思い、マクロで追加クエリを項目に入れマクロを作りました。 マクロを作成する際に、モジュールでレコード追加するテーブルを一度削除しようと思い、「DELETE文」でモジュールを作成し、マクロの追加クエリの前に「プロシージャの実行」でモジュールのプロシージャを実行するようマクロに記述しました。 <マクロ内容> (1)「プロシージャの実行」 (追加クエリで追加するテーブルの中身をDELする) (2)「クエリを開く」 (追加クエリでレコード追加) この用に記述し、マクロ名を「AutoExec」で記述して、ファイルを実行してもマクロが起動しません。 (1)の「プロシージャの実行」までは、実行されているようなのですが(テーブル内確認)、以降の追加クエリが実行されません。 何か他の設定があるのでしょうか? お願い致します。
- ベストアンサー
- オフィス系ソフト
- access2000の2つのmdbのプロシージャ比較
2個のmdbファイルのプロシージャの比較をする簡単な方法を教えていただけないでしょうか。 どちらも同じテーブル、クエリ、レポート等の内容ではあるのですが、バージョンが違っていて、少しだけプロシージャなどが異なるようです。この異なる場所を特定したいのですが。 #それぞれのプロシージャを開いて1個ずつ比べるしかないということなら、「それしかない」というコメントも是非。 #目的は、問題箇所の特定。
- ベストアンサー
- オフィス系ソフト
- アクセス 起動時に2つのフォームを表示したい
Form_Openのイベントプロシージャーで DoCmd.OpenForm でもう一つのフォームを開くしかないですか? 起動時の設定で二つのフォームを指定することは不可能でしょうか?
- ベストアンサー
- オフィス系ソフト
- ACCESS2000 フォームからデータのインポートを起動するには
お世話になります。 フォーム内にコマンドボタンを配置し、そのボタンをクリックしたら、ファイルからテーブルへデータのインポートを起動するようにしたいのですが、イベントプロシージャで、どのように記述すればよいでしょうか。 あるいは、そんなことはできないのでしょうか。
- 締切済み
- その他(データベース)
- 別のAccessファイルのフォームを開くには
Win2000、Access2000を使用しています。 「あいうえお.mdb」というファイルのフォーム上のボタンをクリックすると、「かきくけこ.mdb」というファイルを起動してそのファイル内のフォームを開きたいんですが、 「かきくけこ.mdb」を起動することができません。 エクセルやワードを起動する要領ではできないのでしょうか?(マクロの”アプリケーションの実行”とかShell関数とかで) どなたかおわかりになる方がいましたらお教え下さい。
- ベストアンサー
- オフィス系ソフト
- アクセス2002 VBA
フォームを保存せずに閉じたいのですが、 当該フォームの「閉じる時」プロパティーにイベントプロシージャを設定し、 Private Sub Form_Close() DoCmd.Close acForm, "フォーム1", acSaveNo End Sub と記述しました。 ところが、実行すると 「Close アクションの実行はキャンセルされました。」とエラーになってしまいました。 間違いの指摘をお願いします。
- ベストアンサー
- Visual Basic
- ThinAppでのACCESS97
こんにちは、 VmwareのThinApp(バージョン5)について教えてください。 現在、ThinAppを利用して Access97をパッケージングしようとしております。 パッケージング環境は WindowsXP Pro SP3です。 パッケージングを完了し、そのexeファイルを 他のXP端末で実行すると問題なく動くのですが Windows7Proで実行すると以下の現象が起きます。 ・WindowsXPで作成していたMDBのテーブル・フォーム・レポート等すべて表示できない(デザインビューでも) ・新規でフォーム・テーブル・レポートは作成できる ・Windows7で作成したフォーム等はWindowsXP側では表示できない(デザインビューでも) 要するに、別OSで作成されたフォームやテーブルは表示できない、という具合です。 MDBを作成しているのはどちらもパッケージしたACCESS97です。 ThinAppでのACCESS97事例は多いと思っていたのですが 解決策が見つかりません。 どなたか、教えていただけますか。
- ベストアンサー
- その他([技術者向] コンピューター)
- accessについて教えてください
データベースソフト【アクセス】のエラーメッセージについて教えてください 独学でアクセスを勉強しています。 アクセスのテキストを辿りながら売上管理のフォームを作成しました 3つのテーブルがありリレーションさせています (1)フォームで商品登録フォームをテーブルを元にオートフォームで作成しました フォームを閉じるボタンを設定し実行してみたところ。。。 【イベントプロパティに設定した式 クリック時 でエラーが発生しました:名前が適切でありません:終了_Click *マクロ名、ユーザー定義関数名、[イベントプロシージャ]以外の式が指定されています *関数、イベント、マクロの評価でエラーが発生しました】 以上のメッセージが表示されました テキストの解答とプロパティと設定は全て同じでした リレーションシップも参照整合性も設定は全て同じです (2)上記のエラーメッセージ以外に 上記と同じフォームから新しいデータを入力をしてみたらこちらもエラーメッセージが出ました 【リレーションシップを設定しているテーブルがあるためレコードを削除または更新ができません】 という内容です たまに出るメッセージなのですが これまではテーブルのフィールド名が違っていて、訂正すると新レコードの入力ができました 今回も色々確認してみましたが理由がわかりません アクセスを業務で使用したことがないためエラーの対処方法がわかりません ホームページや書店で色々探してみましたが理由がまったくわかしません 初心者な質問なのかもと思いますが お分かりのかたがいらっしゃればアドバイスお願いします
- ベストアンサー
- オフィス系ソフト
お礼
そっちのマクロですね! できました!できました! わざわざご丁寧にありがとうございます。