'/数据表字段或记录集字段属性.
Public Type SmFiedArrtr
FieldName As String '字段名称
FieldType As String '字段类型
FieldIsNull As String '是否接受NULL
FieldDefSize As Long '定义的据长度
FieldActSize As String '实际数据长度
End Type
'
'取某 数据表 下所有的字段及其属性
'函数名:GetTabFldAttrib
'参数: P_Cnn ADO连接,DateTabName 目标数据表名
'返回值:SmFiedArrtr 类型数组
'例: FiedAtrrib=GetTabFldAttrib(P_CNN,"ACHGOODS")
Public Function GetTabFldAttrib(ByRef P_Cnn As ADODB.Connection, _
DbTableName As String) As SmFiedArrtr()
Dim A As Long
Dim StrSql As String
Dim Rs As New ADODB.Recordset
Dim ReturnVal() As SmFiedArrtr
Dim ReID As Long
On Error Resume Next
StrSql = "Select Top 1 * From [" & DbTableName & "]" '取字段名
Set Rs = RsOpen(P_Cnn, StrSql)
Set Rs.ActiveConnection = Nothing
Erase ReturnVal
For A = 0 To Rs.Fields.Count - 1
ReID = ReID + 1
ReDim Preserve ReturnVal(ReID)
ReturnVal(ReID - 1).FieldType = Rs.Fields(A).Type '数据类型
ReturnVal(ReID - 1).FieldName = Rs.Fields(A).Name '字段名
ReturnVal(ReID - 1).FieldIsNull = Rs.Fields(A).Attributes And adFldIsNullable '是否可接受NULL
ReturnVal(ReID - 1).FieldDefSize = Rs.Fields(A).DefinedSize '定义的数据长度
ReturnVal(ReID - 1).FieldActSize = 0 '实际数据长度(因只有字段名),故此值是0
Next
Set Rs = Nothing
GetTabFldAttrib = ReturnVal
End Function