Append メソッド (ADO)Append method (ADO)

適用先: Access 2013、Office 2013Applies to: Access 2013, Office 2013

コレクションにオブジェクトを追加します。コレクションが Fields である場合は、コレクションに追加する前に、新しい Field オブジェクトを作成できます。Appends an object to a collection. If the collection is Fields, a new Field object may be created before it is appended to the collection.

構文Syntax

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

フィールド。Append NameType未定義サイズAttribFieldValuefields.Append Name, Type, DefinedSize, Attrib, FieldValue

パラメーターParameters

パラメーターParameter 説明Description
collectioncollection コレクション オブジェクトです。A collection object.
fieldsfields Fields コレクションです。A Fields collection.
objectobject 追加するオブジェクトを表すオブジェクト変数です。An object variable that represents the object to be appended.
NameName 新しい Field オブジェクトの名前を含む文字列型 (String) の値です。fields に含まれる他のオブジェクトとは異なる名前にする必要があります。A String value that contains the name of the new Field object, and must not be the same name as any other object in fields.
TypeType 新しいフィールドのデータ型を指定する DataTypeEnum の値です。既定値は adEmpty です。 adIDispatchadIUnknownadVariant の各データ型は ADO ではサポートされていないので、 Recordset に新しいフィールドを追加するときに、これらのデータ型を使用することはできません。A DataTypeEnum value, whose default value is adEmpty, that specifies the data type of the new field. The following data types are not supported by ADO, and should not be used when appending new fields to a Recordset: adIDispatch, adIUnknown, adVariant.
DefinedSizeDefinedSize 省略可能です。新しいフィールドの定義されたサイズを文字数またはバイト数で表す長整数型 (Long) の値です。このパラメーターの既定値は、Type によって決まります。DefinedSize が 255 バイトより大きいフィールドは、可変長列として扱われます (既定の DefinedSize は指定されません)。Optional. A Long value that represents the defined size, in characters or bytes, of the new field. The default value for this parameter is derived from Type. Fields with a DefinedSize greater than 255 bytes, and treated as variable length columns. (The default DefinedSize is unspecified.)
AttribAttrib 省略可能です。新しいフィールドの属性を指定する FieldAttributeEnum 値です。既定値は adFldDefault です。値を指定しないと、Type に基づく属性が設定されます。Optional. A FieldAttributeEnum value, whose default value is adFldDefault, that specifies attributes for the new field. If this value is not specified, the field will contain attributes derived from Type.
FieldValueFieldValue 省略可能です。新しいフィールドの値を表すバリアント型 ( Variant ) の値です。値を指定しないと、フィールドは Null 値で追加されます。Optional. A Variant that represents the value for the new field. If not specified, then the field is appended with a null value.

注釈Remarks

Parameters コレクションParameters collection

Parameters コレクションに追加する前に、 Parameter オブジェクトの Type プロパティを設定する必要があります。可変長データ型を選択する場合は、 Size プロパティを 0 より大きい値に設定する必要もあります。You must set the Type property of a Parameter object before appending it to the Parameters collection. If you select a variable-length data type, you must also set the Size property to a value greater than zero.

パラメーターを記述することで、ストアド プロシージャまたはパラメーター化されたクエリの使用時に、プロバイダーの呼び出しを最小限に抑えて、パフォーマンスを向上させることができます。ただし、そのためには、呼び出すストアド プロシージャまたはパラメーター化されたクエリに関連するパラメーターのプロパティを把握している必要があります。Describing parameters yourself minimizes calls to the provider and consequently improves performance when using stored procedures or parameterized queries. However, you must know the properties of the parameters associated with the stored procedure or parameterized query that you want to call.

CreateParameter メソッドを使用して適切なプロパティ設定を備えた Parameter オブジェクトを作成し、 Append メソッドを使用してオブジェクトを Parameters コレクションに追加します。これにより、プロバイダーを呼び出してパラメーター情報を取得しなくても、パラメーターの値を設定したり返したりすることができます。パラメーター情報を提供しないプロバイダーに書き込む場合にパラメーターを使うには、このメソッドを使用して手動で Parameters コレクションを設定する必要があります。Use the CreateParameter method to create Parameter objects with the appropriate property settings and use the Append method to add them to the Parameters collection. This lets you set and return parameter values without having to call the provider for the parameter information. If you are writing to a provider that does not supply parameter information, you must use this method to manually populate the Parameters collection in order to use parameters at all.

Fields コレクションFields collection

FieldValue パラメーターは、Field オブジェクトを Record オブジェクトに (Recordset オブジェクトではなく) 追加する場合にのみ有効です。Record オブジェクトは、フィールドの追加と値の設定を同時に行うことができます。Recordset オブジェクトの場合は、Recordset を閉じた状態でフィールドを作成し、その後、Recordset を開いてフィールドに値を設定する必要があります。The FieldValue parameter is only valid when adding a Field object to a Record object, not to a Recordset object. With a Record object, you may append fields and provide values at the same time. With a Recordset object, you must create fields while the Recordset is closed, then open the Recordset and assign values to the fields.

注意

Record オブジェクトの Fields コレクションに新しい Field オブジェクトを追加した場合は、 Value プロパティを最初に設定してから、他の Field プロパティを指定する必要があります。まず、 Value プロパティに特定の値を割り当て、 Fields コレクションで Update を呼び出します。その後は、 TypeAttributes などの他のプロパティにアクセスできます。For new Field objects that have been appended to the Fields collection of a Record object, the Value property must be set before any other Field properties can be specified. First, a specific value for the Value property must have been assigned and Update on the Fields collection called. Then, other properties such as Type or Attributes can be accessed.

データ型 (DataTypeEnum) が adArrayadChapteradEmptyadPropVariant、および adUserDefined である Field オブジェクトは、Fields コレクションに追加できません。追加しようとするとエラーが発生します。また、データ型 adIDispatchadIUnknown、および adIVariant は、ADO ではサポートされていません。これらのデータ型の場合、追加時にエラーは発生しませんが、使用すると、メモリ リークなどの予期しない結果になる可能性があります。Field objects of the following data types (DataTypeEnum) cannot be appended to the Fields collection and will cause an error to occur: adArray, adChapter, adEmpty, adPropVariant, and adUserDefined. Also, the following data types are not supported by ADO: adIDispatch, adIUnknown, and adIVariant. For these types, no error will occur when appended, but usage can produce unpredictable results including memory leaks.

RecordsetRecordset

CursorLocation プロパティを設定しないで Append メソッドを呼び出した場合、Recordset オブジェクトの Open メソッドを呼び出すと、CursorLocation が自動的に adUseClient (CursorLocationEnum 値) に設定されます。If you do not set the CursorLocation property before calling the Append method, CursorLocation will be set to adUseClient (a CursorLocationEnum value) automatically when the Recordset object's Open method is called.

開いている RecordsetFields コレクションで、または ActiveConnection プロパティが設定されている RecordsetAppend メソッドを呼び出すと、実行時エラーが発生します。フィールドを追加できるのは、開かれておらず、まだデータ ソースに接続されていない Recordset に対してだけです。通常、これは、 Recordset オブジェクトが、 CreateRecordset メソッドで作成されている場合、またはオブジェクト変数に割り当てられている場合です。A run-time error will occur if the Append method is called on the Fields collection of an open Recordset, or on a Recordset where the ActiveConnection property has been set. You can only append fields to a Recordset that is not open and has not yet been connected to a data source. This is typically the case when a Recordset object is fabricated with the CreateRecordset method or assigned to an object variable.

RecordRecord

開いている RecordFields コレクションで Append メソッドを呼び出した場合は、実行時エラーは発生しません。 Record オブジェクトの Fields コレクションに、新しいフィールドが追加されます。 RecordRecordset から派生している場合は、 Recordset オブジェクトの Fields コレクションに新しいフィールドは追加されません。A run-time error will not occur if the Append method is called on the Fields collection of an open Record. The new field will be added to the Record object's Fields collection. If the Record was derived from a Recordset, then the new field will not appear in the Recordset object's Fields collection.

コレクションに既に存在しているフィールドの場合と同じように、フィールド オブジェクトに値を代入することで、存在しないフィールドを作成して Fields コレクションに追加できます。代入により Field オブジェクトの自動的な作成と追加が始まり、その後で代入が完了します。A non-existent field can be created and appended to the Fields collection by assigning a value to the field object as if it already existed in the collection. The assignment will trigger the automatic creation and appending of the Field object, then the assignment will be completed.

FieldRecord オブジェクトの Fields コレクションに追加した後は、 Fields コレクションの Update メソッドを呼び出して、変更を保存します。After appending a Field to a Record object's Fields collection, call the Update method of the Fields collection to save the change.