Recordsetのフィールド名を取得するSubプロシージャをご紹介しました。
このようなADOでフィールドを操作するコードを書く際に、疑問を感じる方がいらっしゃるかもしれません。
ADOへの参照設定を行っているにも関わらず、「.Field」が、コーディング時に自動メンバー表示されないケースがあるのです。
Fieldが自動メンバー表示される状態とされない状態
Fieldオブジェクトを操作するために、例えばfldという名前の変数を利用する場合、
Dim fld As ADODB.Field
といった変数宣言を行います。
このとき参照設定が行われていれば、「ADODB.f」まで入力したとき、下図のように「Field」がメンバー表示されるはずです。
ところが参照設定が行われているにも関わらず、「ADODB.f」まで入力しても「Field」がメンバー表示されないケースがあるのです。
ADO 6.1では自動メンバー表示されない場合がある
バージョンによって、「Field」が自動メンバー表示される場合とされない場合があります。
ADODBにはバージョンがいくつもあります。
このうち最新版の6.1に参照設定を行ったときに、「Field」が自動メンバー表示されない場面に遭遇します。
ただし自動メンバー表示されないからといって、6.1でFieldオブジェクトが使えないということは、当然ありません。
もしも、そのようなことになったなら、Microsoftは大慌てで修正するはずです。
バージョン6.1ではFieldがなぜか非表示になっている
オブジェクトブラウザーで、バージョン6.1では、なぜかFieldとFieldsが非表示になってしまっています。
クラスペインで、ErrorsとParameterの間に、本来FieldとFieldsが表示されているはずが、なぜか表示されていません。
しかし、オブジェクトブラウザーで右クリックして表示されるショートカットメニューから[非表示のメンバーを表示]をOnにすれば、Fieldがオブジェクトブラウザーに表示されます。
この非表示のメンバーを表示する状態であれば、6.1でもコーディング時に、自動メンバー表示されるようになります。
なぜFieldオブジェクトが非表示になっているのかは不明ですが、非表示のメンバーを表示すると、大量のField〇〇といった名前のオブジェクトが存在していることがわかるので、他のField〇〇オブジェクトと一緒に、本来は表示しておかなければならないFieldまでうっかり非表示にしてしまったケアレスミスのではないかと、私は疑っています。
ADO 2.8で非表示のメンバーを表示した場合
ちなみにADOのバージョン2.8で非表示のメンバーを表示した場合、下図のとおり6.1ほどは非表示のメンバーがないことを確認できます。
また非表示になっている項目は、(おそらく)古いバージョンと思われるものです。
最終更新日時:2018-12-27 04:41
- Newer:数式で値が0のときの条件付き書式
- Older:FileSystemObjectでファイル名を配列に
Home » ADO(ActiveX Data Objects)の使い方 » 参照設定したのにFieldが自動メンバー表示されない