Microsoft Access Club >Access一日一見 >このページ >次頁 <前項  サイト内検索


コンパイルエラー : モジュールではなく変数またはプロシージャ名を指定してください



プロシージャを実行しようとすると、突然、下記のようなエラーメッセージが表示されることがあります。今まで正常に動いていたのに、何故、と首をかしげパニックになり易いですね。

エラーが発生する場合、特に、今まで正しく動いていたのに突然動かなくなった場合など、直近の動作を辿って行きましょう。

  1. 何か、あなたがプロシージャ内を書き換えた箇所が問題なのか。
  2. 参照設定をいじらなかったですか?
  3. Deleteキー、Spaceキーに触れなかったですか?
  4. モジュール名、プロシージャ名を変更しなかったですか?

今回の、「コンパイルエラー : モジュールではなく変数またはプロシージャ名を指定してください 」エラーは、モジュール名、プロシージャ名を何気なく変更してしまったことで発生します。

サンプルプロシージャとプロシージャ名

下記のような標準プロシージャを作成します。このプロシージャ名は名前規則に違反していませんからエラーが発生することはありません。

Function DDEInitiateCK()

    Dim MyChan As Long
    Dim strExcelPath As String

    'Excelのフルパスを記述します。
    strExcelPath = "C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"

    Shell strExcelPath, 1

    MyChan = DDEInitiate("Excel", "System")
    MsgBox "接続チャンネルは : " & MyChan & "です"
    
    DDETerminate MyChan

End Function
実行結果
  1. 下記のようにモジュール名を変更します。

  1. モジュール名が、DDEInitiateメソッドと同名になっています。
  2. これが原因で内部干渉がAccess内で発生し、上図のエラーが発生します。
  3. 下図のように命名すると、何も問題が発生しません。

留意事項

  • モジュール名は、決して実在するメソッド、アクション、プロパティ名をそのまま使用しないようにしましょう。

2004/04/18

ページの先頭へ 前ページへ戻る

 


コンパイルエラー : モジュールではなく変数またはプロシージャ名を指定してください


-Microsoft Access Club-

年額2,400円でドメインネームサーバーをご用意します。自宅サーバ構築時にご利用下さい。自宅サーバーは応用範囲が広いです。
年額2,400円でドメインネームサーバー。
自社・自宅サーバ構築時にご利用下さい。
やはり、自前サーバーは応用範囲が広いです。