Append メソッド (ADO)

コレクションにオブジェクトを追加します。 コレクションが Fields の場合は、コレクションに追加する前に新しい Field オブジェクトを作成できます。

構文

  
collection.Append object  
fields.Append Name, Type, DefinedSize, Attrib, FieldValue  

パラメーター

collection
コレクション オブジェクト。

fields
Fields コレクション。

object
追加するオブジェクトを表すオブジェクト変数。

名前
新しい Field オブジェクトの名前を含む String 値。fields 内の他のオブジェクトと同じ名前にすることはできません。

Type
新しいフィールドのデータ型を指定する DataTypeEnum 値。既定値は adEmpty です。 次のデータ型は ADO ではサポートされていないため、Recordset オブジェクト (ADO) に新しいフィールドを追加する場合は使用しないでください: adIDispatchadIUnknownadVariant

DefinedSize
省略可能。 新しいフィールドの定義されたサイズ (文字またはバイト単位) を表す Long 値。 このパラメーターの既定値は Type から派生します。 DefinedSize が 255 バイトを超えるフィールドは、可変長列として扱われます。 DefinedSize の既定値は指定されていません。

Attrib
省略可能。 新しいフィールドの属性を指定する、FieldAttributeEnum 値。既定値は adFldDefault です。 この値が指定されていない場合、フィールドには Type から派生した属性が含まれます。

FieldValue
省略可能。 新しいフィールドの値を表す Variant。 指定されていない場合、フィールドには null 値が追加されます。

注釈

Parameters コレクション

Parameters コレクションに追加する前に、Parameter オブジェクトの Type プロパティを設定する必要があります。 可変長データ型を選択する場合は、Size プロパティを 0 より大きい値に設定する必要もあります。

パラメーターを自分で記述すると、プロバイダーの呼び出しが最小限に抑えられるため、ストアド プロシージャまたはパラメーター化クエリを使用する場合のパフォーマンスが向上します。 ただし、呼び出すストアド プロシージャまたはパラメーター化クエリに関連付けられているパラメーターのプロパティを把握しておく必要があります。

CreateParameter メソッドを使用して、適切なプロパティ設定で Parameter オブジェクトを作成し、Append メソッドを使用してそれらを Parameters コレクションに追加します。 これにより、パラメーター情報のプロバイダーを呼び出すことなく、パラメーター値を設定したり返したりすることができます。 パラメーター情報が提供されないプロバイダーに書き込む場合、パラメーターを使用できるようにするために、このメソッドを使用して Parameters コレクションを手動で設定する必要があります。

Fields コレクション

FieldValue パラメーターは、Recordset オブジェクトではなく、Record オブジェクトに Field オブジェクトを追加する場合にのみ有効です。 Record オブジェクトでは、フィールドの追加と値の設定が同時に行えます。 Recordset オブジェクトでは、Recordset が閉じられている状態でフィールドを作成し、その後 Recordset を開いてフィールドに値を割り当てる必要があります。

注意

Record オブジェクトの Fields コレクションに追加された新しい Field オブジェクトの場合は、他の Field プロパティを指定する前に Value プロパティを設定する必要があります。 最初に、Value プロパティの特定の値が割り当てられ、Fields コレクションの Update が呼び出される必要があります。 その後、TypeAttributes などの他のプロパティにアクセスできます。 次のデータ型 (DataTypeEnum) の Field オブジェクトは Fields コレクションには追加できず、エラーが発生します: adArrayadChapteradEmptyadPropVariantadUserDefined。 また、次のデータ型は ADO ではサポートされていません: adIDispatchadIUnknownadIVariant。 これらの型の場合、追加してもエラーは発生しませんが、メモリ リークを含む予期しない結果が生じる可能性があります。

レコードセット

Append メソッドを呼び出す前に CursorLocation プロパティを設定していない場合、Recordset オブジェクトの Open メソッドが呼び出されたときに、CursorLocation は自動的に adUseClient (CursorLocationEnum 値) に設定されます。

開いている RecordsetFields コレクションまたは ActiveConnection プロパティが設定されている RecordsetAppend メソッドが呼び出されると、実行時エラーが発生します。 フィールドを追加できるのは、開いておらず、まだデータ ソースに接続されていない Recordset のみです。 これは通常、Recordset オブジェクトが CreateRecordset メソッドを使用して作成されているか、オブジェクト変数に割り当てられている場合です。

レコード

開いている RecordFields コレクションで Append メソッドが呼び出された場合、実行時エラーは発生しません。 新しいフィールドは Record オブジェクトの Fields コレクションに追加されます。 RecordRecordset から派生した場合、新しいフィールドは Recordset オブジェクトの Fields コレクションには表示されません。

存在しないフィールドは、コレクション内に既に存在している場合と同様に、フィールド オブジェクトに値を割り当てると、作成および Fields コレクションへの追加ができます。 その割り当てで Field オブジェクトの自動作成と追加がトリガーされ、割り当てが完了します。

Record オブジェクトの Fields コレクションに Field を追加した後、Fields コレクションの Update メソッドを呼び出して変更を保存します。

適用対象

参照

Append および CreateParameter メソッドの例 (VB)
Append および CreateParameter メソッドの例 (VC++)
CreateParameter メソッド (ADO)
Delete メソッド (ADO Fields コレクション)
Delete メソッド (ADO Parameters コレクション)
Delete メソッド (ADO Recordset)
Update メソッド