プロが教えるわが家の防犯対策術!

いつもお知恵拝借、ありがとうございます。

最近、初めてaccess vbaのモジュールを作成しました。excelでは経験があったので、そのつもりで、フォームのコマンドボタンに「マクロの登録」をしようと思ったのですが、excelの時のように、右クリック→マクロの登録・・・と言うわけにはいかないようです。

いろいろネットも調べてみたのですが、どうも要領を得ません(^^;)

accessのフォームのコマンドボタンに、マクロを登録するにはどうしたらいいのでしょうか?

因みに、vbeの画面から実行すると、ちゃんと動いてくれます。

基本的な質問ではなはだ恐縮ですが、どなたかご指導のほど、よろしくお願いしますm(_ _)m

A 回答 (3件)

まず、ExcelではマクロというとVBAのコードを指しますが


AccessではマクロとVBA(プロシージャ)とは別物です

ボタンにプロシージャを登録するには
ボタンのクリック時イベント欄をクリック
ビルドボタン「・・・」を押し、コードビルダを押すと
VBAウィンドウが開き、下のようなコードが表示されますから
ここに作成したコードを呼ぶようなコードを書きます

Private Sub コマンド24_Click()

End Sub

普通はあらかじめ別の所(モジュール)にコードを書かず
上の手順でクリックイベントに直接コードを書いていきます
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。


ボタンにプロシージャを登録するには
ボタンのクリック時イベント欄をクリック
ビルドボタン「・・・」を押し、コードビルダを押すと
VBAウィンドウが開き、下のようなコードが表示されますから
ここに作成したコードを呼ぶようなコードを書きます


とのことですが、次の、


Private Sub コマンド24_Click()

End Sub


というのが出てきません。いきなり「メモリが不足しています」というメッセージが出てきて、Okを出すと、VBAの画面が出て、VBAコード(プロシージャ)が表示されます。

いったいどうなってるんでしょうか?因みに、データベースのサイズは現在のところ129Mあります。

申し遅れましたが、XP+Office2003ですm(_ _)m

お礼日時:2006/11/22 16:41

「マクロの登録」 というのが、アクセスの「マクロ」ではなく、


VBA のプロシージャ をフォームのボタンから起動する、ということですよね。
ボタンの「クリック時」で [イベントプロシージャ]を選択し、
右の「...」をクリックします。
Private Sub コマンドボタン名_Click()

End Sub
と表示されるので、間に
  Call プロシージャ名()
と記述すれば、呼び出せます。
プロシージャの内容によっては、直に、クリックイベントに
処理を書いても良いかも。

この回答への補足

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

#2の方に書きましたとおりの状態となりました。

データベースのサイズが大きすぎるということでしょうか?Accessですから、そんなこともないと思ったのですが・・・(^^;)

補足日時:2006/11/22 16:42
    • good
    • 0

登録したいコマンドボタンのプロパティを開いて、イベントの「クリック時」の部分に動かしたいマクロを登録すれば、実行できると思います。

私の場合はACCESS2000で試してみましたので、バージョンが上のものはさらに簡単な方法があるかもしれませんが、参考まで。

この回答への補足

早速のご回答、ありがとうございます。

>登録したいコマンドボタンのプロパティを開いて、イベントの「クリック時」の部分に動かしたいマクロを登録すれば、実行できると思います

これは既にトライしました。でも、うまく行きません。だいいち、マクロのリストが(EXCELで出てくるような)出てきません。それで、プロシージャの名前をそのまま貼り付けたら、エラーが出て・・・。

データベースのマクロウインドウを使うのかな?と思っていろいろタメしてみましたが、さっぱり分かりません(^^;)

基本的になんか、間違いをしているのかも知れませんが・・・。

補足日時:2006/11/21 23:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!