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

アクセスのフォームの上にコマンドボタンを一つ設置して、
クリックイベントで

Private Sub コマンド0_Click()
DoCmd.Close acForm, Me.Name
End Sub

とすれば、自身のフォームが閉じます。

しかし、
Private Sub コマンド0_Click()
Call test
End Sub

と、

標準モジュール
Option Compare Database
Option Explicit

Sub test()
DoCmd.Close acForm, Form_フォーム1
End Sub
にすると、
実行時エラー2498 指定した式は、 いずれか の引数とデータ型が対応していません。
になります。

行ってる意味は同じだと思うのですが、
なぜエラーになるのか教えていただけますか?ご教授よろしくお願いします。

A 回答 (3件)

Closeメソッドの2番目の引数



DoCmd.Close acForm, Me.Name
こっちは、Form名

DoCmd.Close acForm, Form_フォーム1
こっちは、Formオブジェクト
(Form_フォーム1が フォームだと勝手に解釈)

全然違う。

直すならば
DoCmd.Close acForm, Form_フォーム1.Name
です。

オブジェクト指向って何?って所から勉強した方がイイ。
    • good
    • 0
この回答へのお礼

DoCmd.Close acForm, Form_フォーム1.Name
にしたらうまくできました。

オブジェクト指向は難しそうですね。でも勉強してみます。ありがとうございました。

お礼日時:2013/01/01 13:43

forms!...

    • good
    • 0
この回答へのお礼

DoCmd.Close acForm, Forms!フォーム1
でしょうか・・?
同じエラーになってしまいました。

お礼日時:2013/01/01 13:42

>いずれか の引数とデータ型が対応



エラー内容を、よく見て、かみ締めて、噛み砕いてください。違うと思いますよ。ちゃんとエラー内容を、検証したのでしょうか? その辺の記載ないですよね。
    • good
    • 0
この回答へのお礼

自分なりに検証したつもりでしたがわかりませんでした・・・

お礼日時:2013/01/01 13:39

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A