|
Option Explicit
Sub A()
Dim rs, arr, i&
Set rs = CreateObject("adodb.recordset")
arr = [a1].CurrentRegion
With rs
.Fields.Append "a", 3, , 32
.Fields.Append "b", 3, , 32
.Fields.Append "c", 3, , 32
.Open
End With
For i = 2 To UBound(arr)
rs.AddNew Array(0, 1, 2), _
Array(arr(i, 1), arr(i, 2), arr(i, 3))
Next
rs.MoveFirst
rs.Sort = "a DESC"
[e:j] = ""
Range("e2").CopyFromRecordset rs
rs.Close
Set rs = Nothing
End Sub
Append 方法 (ADO)
将对象追加到集合中。如果集合是 Fields,将其追加到集合之前可以创建新的 Field 对象。
语法
fields.Append Name, Type, DefinedSize, Attrib
参数
fields Fields 集合。
object 对象变量,代表所要追加对象。
Name 字符串,新 Field 对象的名称,不得与 fields 中的任何其他对象同名。
Type DataTypeEnum 类型,其默认值为 adEmpty。新字段的数据类型。
DefinedSize 可选,长整型,指示新字段的定义大小(以字符或字节为单位)。该参数的默认值源于 Type (默认的 Type 为 adEmpty,默认的 DefinedSize 未指定)。
Attrib 可选,FieldAttributeEnum,其默认值是 adFldDefault。指定新字段的属性。如果该值未指定,字段将包含源于 Type 的属性。
参数
在集合上使用 Append 方法可将对象添加到该集合,此方法仅在 Command 对象的 Parameters 集合上有效。在将 Parameter 对象追加到 Parameters 集合中之前必须设置其 Type 属性。如果选定了变长数据类型,则必须将 Size 属性设置为大于零的值。
通过对参数作出说明,可以最大程度地减少对提供者的调用,进而在使用存储过程或参数化查询时提高性能,但必须了解与所要调用的存储过程或参数化查询相关联的参数属性。使用 CreateParameter 方法可创建具有适当属性设置的 Parameter 对象,而使用 Append 方法则可将它们添加到 Parameters 集合。这样可以不必调用参数信息的提供者而设置和返回参数值。如果写到不提供参数信息的提供者,则必须使用该方法手工填写 Parameters 集合以便能够完全使用参数。
字段
在调用 fields.Append 方法前须将 CursorLocation 属性设置为 adUseClient。
对打开的 Recordset 或已设置 ActiveConnection 属性的 Recordset ,调用其 fields.Append 方法将引发运行时错误。
Attributes 常量 值 说明
adFldUpdatable 4 字段可写
adFldFixed 16 字段数据定长
adFldIsNullable 32 字段允许 Null 值
adFldMayBeNull 64 可从字段读取 Null 值
adFldLong 128 long binary 字段
Type 常量 值 说明
adEmpty 0 未指定类型(DBTYPE_EMPTY).
adSmallInt 2 2 字节(16-bit)有符号整数(DBTYPE_I2).
adInteger 3 4 字节(32-bit)有符号整数(DBTYPE_I4).
adSingle 4 4 字节(32-bit)单精度IEEE浮点数(DBTYPE_R4).
adDouble 5 8 字节(64-bit)双精度IEEE浮点数(DBTYPE_R8).
adCurrency 6 Currency 值(DBTYPE_CY)。Currency 是 4 位小数定点数,以扩大10000倍的 8 字节有符号整数存储。OLE DB Provider 不支持此类型。
adDate 7 日期类型,以 Double 类型存储,整数部分是 1899-12-30 以来的天数,小数部分是一天的分数。OLE DB Provider 不支持此类型。
adBSTR 8 以 null 终止的 Unicode 字符串(DBTYPE_BSTR)。OLE DB Provider 不支持此类型。
adIDispatch 9 指向 OLE 对象 IDispatch 接口的指针(DBTYPE_IDISPATCH). OLE DB Provider 不支持此类型。
adError 10 32-bit错误代码(DBTYPE_ERROR)。OLE DB Provider 不支持此类型。
adBoolean 11 Boolean 值(DBTYPE_BOOL)。OLE DB Provider 不支持此类型。
adVariant 12 自动化 variant 类型(DBTYPE_VARIANT)。OLE DB Provider 不支持此类型。
adIUnknown 13 指向 OLE 对象 IUnknown 接口的指针(DBTYPE_IUNKNOWN)。OLE DB Provider 不支持此类型。
adDecimal 14 固定精度和小数位数的数字数据(DBTYPE_DECIMAL).
adTinyInt 16 单字节(8-bit)有符号整数(DBTYPE_I1)。OLE DB Provider 不支持此类型。
adUnsignedTinyInt 17 单字节(8-bit)无符号整数(DBTYPE_UI1)。OLE DB Provider 不支持此类型。
adUnsignedSmallInt 18 2 字节(16-bit)无符号整数(DBTYPE_UI2)。OLE DB Provider 不支持此类型。
adUnsignedInt 19 4 字节(32-bit)无符号整数(DBTYPE_UI4)。OLE DB Provider 不支持此类型。
adBigInt 20 8 字节(64-bit)有符号整数(DBTYPE_I8)。OLE DB Provider 不支持此类型。
adUnsignedBigInt 21 8 字节(64-bit)无符号整数(DBTYPE_UI8)。OLE DB Provider 不支持此类型。
adGUID 72 全局唯一标识符或 GUID 类型(DBTYPE_GUID)。OLE DB Provider 不支持此类型。
adBinary 128 定长二进制数据(DBTYPE_BYTES)
adChar 129 字符串量(DBTYPE_STR)
adWChar 130 以 null 终止的 Unicode 字符串(DBTYPE_WSTR)。OLE DB Provider 不支持此类型。
adNumeric 131 精度和小数位数准确指定的数字数据(DBTYPE_NUMERIC)
adUserDefined 132 用户定义数据类型(DBTYPE_UDT)。OLE DB Provider 不支持此类型。
adDBDate 133 OLE DB 日期结构(DBTYPE_DATE)
adDBTime 134 OLE DB 时间结构(DBTYPE_TIME)
adDBTimeStamp 135 OLE DB timestamp 结构(DBTYPE_TIMESTAMP)
adVarChar 200 可变长字符数据(DBTYPE_STR)
adLongVarChar 201 长字符串值
adVarWChar 202 Unicode 字符串值。OLE DB Provider 不支持此类型。
adLongVarWChar 203 长 Unicode 字符串值。OLE DB Provider 不支持此类型。
adVarBinary 204 可变长二进制值(DBTYPE_BYTES)
adLongVarBinary 205 长二进制值 |
|