请问各位大侠,运行红色部分,rst.sort出错,提示属性的使用无效,是什么原因????????????????
Sub ReadTextFromModle()
Dim Rst As ADODB.Recordset
RstFiledsName = Array("Number", "SpecName")
Set Rst = CreatSelectionHeading(RstFiledsName)
Rst.Open
For ii = 0 To sSet.Count - 1
Set objText = sSet.Item(ii)
With objText
Rst.AddNew
Rst.Fields(0).Value = Mid(.TextString, 1, InStr(.TextString, ","))
Rst.Fields(1).Value = Mid(.TextString, InStr(.TextString, ",") + 1)
End With
Next ii
With Rst
Rst.Sort .MoveFirst
For ii = 0 To .RecordCount - 1
For jj = 0 To .Fields.Count - 1
Debug.Print .Fields(jj).Value
Next jj
.MoveNext
Next ii
End With
End SubFunction CreatSelectionHeading(RstFiledsName As Variant) As ADODB.Recordset
Dim Rst As ADODB.Recordset
Set Rst = New ADODB.Recordset
For ii = 0 To UBound(RstFiledsName)
With Rst
.Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull
End With
Next ii
Set CreatSelectionHeading = Rst
End Function
Sub ReadTextFromModle()
Dim Rst As ADODB.Recordset
RstFiledsName = Array("Number", "SpecName")
Set Rst = CreatSelectionHeading(RstFiledsName)
Rst.Open
For ii = 0 To sSet.Count - 1
Set objText = sSet.Item(ii)
With objText
Rst.AddNew
Rst.Fields(0).Value = Mid(.TextString, 1, InStr(.TextString, ","))
Rst.Fields(1).Value = Mid(.TextString, InStr(.TextString, ",") + 1)
End With
Next ii
With Rst
Rst.Sort .MoveFirst
For ii = 0 To .RecordCount - 1
For jj = 0 To .Fields.Count - 1
Debug.Print .Fields(jj).Value
Next jj
.MoveNext
Next ii
End With
End SubFunction CreatSelectionHeading(RstFiledsName As Variant) As ADODB.Recordset
Dim Rst As ADODB.Recordset
Set Rst = New ADODB.Recordset
For ii = 0 To UBound(RstFiledsName)
With Rst
.Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull
End With
Next ii
Set CreatSelectionHeading = Rst
End Function
Rst.Sort = "Number DESC" 提示为排序无法被应用。
Rst.Sort = ""程序通过。
原因何在?
这些语句不会出错,为什么不能排序??
Dim Rst As ADODB.Recordset
Set Rst = New ADODB.Recordset
For ii = 0 To UBound(RstFiledsName)
With Rst
.Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull
End With
Next ii
Set CreatSelectionHeading = Rst
请问各位大侠还有什么办法。谢谢
rs.sort = "字段名 desc" '按指定字段逆序排序
关键是在这一条语句上
.Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull
.Fields.Append RstFiledsName(ii),adInteger, , adFldMayBeNull
adVariant--改为adInteger程序通过,但是我要排序的是字符串
adDbStr也不通过。
问各位大侠,
rst.sort不能对字符串进行排序吗???
能.如果下面字段用來存字符串,則將
.Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull 改為
.Fields.Append RstFiledsName(ii), adVarChar,50 , adFldMayBeNull
以下列出各類型常量的說明:常量 说明
AdArray 与其他类型一起加入逻辑 OR 以指示该数据是那种类型的安全数组 (DBTYPE_ARRAY)。
AdBigInt 8 字节带符号的整数 (DBTYPE_I8)。
AdBinary 二进制值 (DBTYPE_BYTES)。
AdBoolean 布尔型值 (DBTYPE_BOOL)。
adByRef 与其他类型一起加入逻辑 OR 以指示该数据是其他类型数据的指针 (DBTYPE_BYREF)。
adBSTR 以空结尾的字符串 (Unicode) (DBTYPE_BSTR)。
adChar 字符串值 (DBTYPE_STR)。
adCurrency 货币值 (DBTYPE_CY)。货币数字的小数点位置固定、小数点右侧有四位数字。该值保存为 8 字节范围为 10,000 的带符号整型值。
adDate 日期值 (DBTYPE_DATE)。日期按双精度型数值来保存,数字全部表示从 1899 年 12 月 30 开始的日期数。小数部分是一天当中的片段时间。
adDBDate 日期值 (yyyymmdd) (DBTYPE_DBDATE)。
adDBTime 时间值 (hhmmss) (DBTYPE_DBTIME)。
adDBTimeStamp 时间戳(yyyymmddhhmmss 加 10 亿分之一的小数)(DBTYPE_DBTIMESTAMP).
adDecimal 具有固定精度和范围的精确数字值 (DBTYPE_DECIMAL)。
adDouble 双精度浮点值 (DBTYPE_R8)。
adEmpty 未指定值 (DBTYPE_EMPTY)。
adError 32 - 位错误代码 (DBTYPE_ERROR)。
adGUID 全局唯一的标识符 (GUID) (DBTYPE_GUID)。
adIDispatch OLE 对象上 Idispatch 接口的指针 (DBTYPE_IDISPATCH)。
adInteger 4 字节的带符号整型 (DBTYPE_I4)。
adIUnknown OLE 对象上 IUnknown 接口的指针 (DBTYPE_IUNKNOWN)。
adLongVarBinary 长二进制值(仅用于 Parameter 对象)。
adLongVarChar 长字符串值(仅用于 Parameter 对象)。
adLongVarWChar 以空结尾的长字符串值(仅用于 Parameter 对象)。
adNumeric 具有固定精度和范围的精确数字值 (DBTYPE_NUMERIC)。
adSingle 单精度浮点值 (DBTYPE_R4)。
adSmallInt 2 字节带符号整型 (DBTYPE_I2)。
adTinyInt 1 字节带符号整型 (DBTYPE_I1)。
adUnsignedBigInt 8 字节不带符号整型 (DBTYPE_UI8)。
adUnsignedInt 4 字节不带符号整型 (DBTYPE_UI4)。
adUnsignedSmallInt 2 字节不带符号整型 (DBTYPE_UI2)。
adUnsignedTinyInt 1 字节不带符号整型 (DBTYPE_UI1)。
adUserDefined 用户定义的变量 (DBTYPE_UDT)。
adVarBinary 二进制值(仅 Parameter 对象)。
adVarChar 字符串值(仅 Parameter 对象)。
adVariant 自动变体型 (DBTYPE_VARIANT)。
adVector 与其他类型一起加入逻辑 OR 中,指示数据是 DBVECTOR 结构(由 OLE DB 定义)。该结构含有元素的计数和其他类型 (DBTYPE_VECTOR) 数据的指针。
adVarWChar 以空结尾的 Unicode 字符串(仅 Parameter 对象)。
adWChar 以空结尾的 Unicode 字符串 (DBTYPE_WSTR)。
.Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull 改為
.Fields.Append RstFiledsName(ii), adChar,255 , adFldMayBeNull