Append メソッド (ADO)
適用先: Access 2013、Office 2013
コレクションにオブジェクトを追加します。 コレクションが Fields である場合は、コレクションに追加する前に、新しい Field オブジェクトを作成できます。
構文
コレクション。Append オブジェクト
フィールド。追加 名、 型、 DefinedSize、 Attrib、 FieldValue
パラメーター
パラメーター | 説明 |
---|---|
collection | コレクション オブジェクトです。 |
fields | Fields コレクションです。 |
object | 追加するオブジェクトを表すオブジェクト変数です。 |
名前 | 新しい Field オブジェクトの名前を含む文字列型 (String) の値です。fields に含まれる他のオブジェクトとは異なる名前にする必要があります。 |
型 | 新しいフィールドのデータ型を指定する、既定値が adEmpty である DataTypeEnum 値。 次のデータ型は ADO ではサポートされていないため、 Recordset に新しいフィールドを追加する場合は使用しないでください: adIDispatch、 adIUnknown、 adVariant。 |
DefinedSize | 省略可能です。 新しいフィールドの定義されたサイズを文字またはバイト単位で表す Long 値。 このパラメーターの既定値は 、Type から派生します。 DefinedSize が 255 バイトを超え、可変長列として扱われるフィールド。 (既定の DefinedSize は指定されていません)。 |
Attrib | 省略可能です。 新しいフィールドの属性を指定する、既定値が adFldDefault である FieldAttributeEnum 値。 この値が指定されていない場合、フィールドには Type から派生した属性が含まれます。 |
FieldValue | 省略可能です。 新しいフィールドの値を表すバリアント型 ( Variant ) の値です。 値を指定しないと、フィールドは Null 値で追加されます。 |
注釈
Parameters コレクション
Parameters コレクションに追加する前に、 Parameter オブジェクトの Type プロパティを設定する必要があります。 可変長データ型を選択する場合は、 Size プロパティを 0 より大きい値に設定する必要もあります。
パラメーターを記述することで、ストアド プロシージャまたはパラメーター化されたクエリの使用時に、プロバイダーの呼び出しを最小限に抑えて、パフォーマンスを向上させることができます。 ただし、そのためには、呼び出すストアド プロシージャまたはパラメーター化されたクエリに関連するパラメーターのプロパティを把握している必要があります。
CreateParameter メソッドを使用して適切なプロパティ設定を備えた Parameter オブジェクトを作成し、 Append メソッドを使用してオブジェクトを Parameters コレクションに追加します。 これにより、プロバイダーを呼び出してパラメーター情報を取得しなくても、パラメーターの値を設定したり返したりすることができます。 パラメーター情報を提供しないプロバイダーに書き込む場合にパラメーターを使うには、このメソッドを使用して手動で Parameters コレクションを設定する必要があります。
Fields コレクション
FieldValue パラメーターは、Field オブジェクトを Record オブジェクトに (Recordset オブジェクトではなく) 追加する場合にのみ有効です。 Record オブジェクトは、フィールドの追加と値の設定を同時に行うことができます。 Recordset オブジェクトの場合は、 Recordset を閉じた状態でフィールドを作成し、その後、 Recordset を開いてフィールドに値を設定する必要があります。
注:
Record オブジェクトの Fields コレクションに新しい Field オブジェクトを追加した場合は、 Value プロパティを最初に設定してから、他の Field プロパティを指定する必要があります。 まず、 Value プロパティに特定の値を割り当て、 Fields コレクションで Update を呼び出します。 その後は、 Type や Attributes などの他のプロパティにアクセスできます。
次のデータ型 (DataTypeEnum) の Field オブジェクトを Fields コレクションに追加することはできません。これにより、adArray、adChapter、adEmpty、adPropVariant、adUserDefined というエラーが発生します。 また、ADO では、 adIDispatch、 adIUnknown、および adIVariant のデータ型はサポートされていません。 これらの型の場合、追加してもエラーは発生しませんが、メモリ リークを含む予期しない結果が生成される可能性があります。
Recordset
CursorLocation プロパティを設定しないで Append メソッドを呼び出した場合、 Recordset オブジェクトの Open メソッドを呼び出すと、 CursorLocation が自動的に adUseClient ( CursorLocationEnum 値) に設定されます。
開いている Recordset の Fields コレクションで、または ActiveConnection プロパティが設定されている Recordset で Append メソッドを呼び出すと、実行時エラーが発生します。 フィールドを追加できるのは、開かれておらず、まだデータ ソースに接続されていない Recordset に対してだけです。 通常、これは、 Recordset オブジェクトが、 CreateRecordset メソッドで作成されている場合、またはオブジェクト変数に割り当てられている場合です。
録音する
開いている Record の Fields コレクションで Append メソッドを呼び出した場合は、実行時エラーは発生しません。 Record オブジェクトの Fields コレクションに、新しいフィールドが追加されます。 Record が Recordset から派生している場合は、 Recordset オブジェクトの Fields コレクションに新しいフィールドは追加されません。
コレクションに既に存在しているフィールドの場合と同じように、フィールド オブジェクトに値を代入することで、存在しないフィールドを作成して Fields コレクションに追加できます。 代入により Field オブジェクトの自動的な作成と追加が始まり、その後で代入が完了します。
Field を Record オブジェクトの Fields コレクションに追加した後は、 Fields コレクションの Update メソッドを呼び出して、変更を保存します。