#334 | 「ユーザー定義型は定義されていません。」エラーの対処方法 | VBA | |
「ユーザー定義型は定義されていません。」というコンパイルエラーが発生した場合の対処方法を例に、本Access Tipsに掲載されているVBAのコードを実行する際の注意事項、およびVBAでテーブルを扱う際の基礎知識について説明します。 VBAのコードを実行しようとしたとき、あるいはコンパイルしたときに下図のようなエラーメッセージが出た場合には、次のような手順でVBAの設定変更を行ってください。
この設定をしたところで、再度プログラムを実行してみてください。正しく参照設定されていればエラーは解消されるはずです。 なお、再度参照設定のダイアログを開くと、下図のように、チェックマークが付けられたライブラリが先頭に表示されるようになります。
■解説
Accessでは、データが保存されている「テーブル」も、プログラムが記述されている「モジュール」も同じデータベースファイルの中にあります。しかし、VBAからテーブル(あるいはクエリ)にアクセスする場合、すべてがそのファイル内だけで処理されるわけではありません。またVBAという仕組みそのものがテーブルなどへのアクセス機能を持っているわけではありません。"外部のデータアクセス機能"を呼び出し、それを介してさまざまなレコード操作を行うようになっています。 その外部のデータアクセス機能とは次の2つです。
実際にプログラミングする際には、それぞれ異なる書き方・手法が必要となりますが、本Access Tipsに掲載されているプログラムは、特に断りのない限りすべて「DAO」を使ったものになっています。ADOしか使えない設定でDAOのプログラムを実行しようとすると、「ユーザー定義型は定義されていません。」というエラーが発生します。そのような場合には、そのプログラムで使用するデータアクセス機能を、ADOではなくDAOに切り替える必要があります。その切り替え操作を行うのが、上記手順で説明した「参照設定」の画面です。もちろん、DAOしか使えない設定になっている状態でADOを使う場合には、逆の設定変更を行わなければなりません。
|
|||
|
Copyright © T'sWare All rights reserved |