ここから本文です

Newキーワードについてです。Accessヘルプに「キーワード New を使って、固有のデ...

cyk********さん

2010/2/2610:56:49

Newキーワードについてです。Accessヘルプに「キーワード New を使って、固有のデータ型の変数の宣言、または従属オブジェクトのインスタンスの宣言はできません。」と
ありますが、「従属オブジェクトのインスタンス

」は、具体的に何でしょうか?

閲覧数:
456
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

aka. YU-TANGさん

2010/2/2614:43:11

親オブジェクトに子オブジェクトが従属する関係になっていて、
子オブジェクト単独では存在・生成できないものを指します。

たとえば Access のテキストボックスは、親となるフォームか
レポートに従属します。フォームもレポートも無いのに、テキスト
ボックスだけ表示ということは Access ではありえません。
まずフォーム/レポート在りきであって、その中において初めて
テキストボックスが存在できます。
これらの従属オブジェクトを New でいきなり生成することは
できない、という意味です。

対照的に、ユーザー定義のクラスモジュールや、Access のフォーム
オブジェクトなど、特に従属していない (オブジェクトモデル上で
上位のオブジェトが無いという意味ではありませんが) オブジェクトは
New キーワードでインスタンスを生成できます。

厳密にはユーザー定義のクラスモジュールや Access のフォームでも
New で生成できないケースはありますが、例外事例を事細かに列挙して
Instancing がどうこうといった話を続けても説明をややこしくするだけ
ですので、大雑把には上記のような理解でよろしいかと思います。

簡単に確認するなら、Access 付属のサンプル NorthWind.mdb で下記の
ようなコードを実行してみてください。

Sub TestForNewKeyword()

Dim f As New Form_社員 ' ユーザー定義のクラスモジュールで試してもよい
f.Visible = True ' OK
MsgBox TypeName(f) & "のインスタンスを New で生成しました。"

Dim t As New Access.TextBox
t.Visible = True ' NG (Error)
MsgBox TypeName(t) & "のインスタンスを New で生成しました。"

End Sub

質問した人からのコメント

2010/3/2 18:02:23

ありがとうございました。理解できました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる