Sub ReadProperties() Dim TestDB As Database '需打开的数据库 Dim Tbf As DAO.TableDef Dim fld As DAO.Field Dim P As DAO.Property Dim TableName As String Dim FieldName As String On Error Resume Next TableName = "Content" '表名 FieldName = "AgeType" '字段名 '打开数据库 Set TestDB = DBEngine(0).OpenDatabase("D:\a.mdb") '取表的说明 List1.AddItem "表的属性" For Each Tbf In TestDB.TableDefs If Tbf.Name = TableName Then '判断表名 For Each P In Tbf.Properties List1.AddItem P.Name & " - " & P.Value Next End If Next List1.AddItem "" '取字段的说明 List1.AddItem "字段的属性" For Each Tbf In TestDB.TableDefs For Each fld In Tbf.Fields If fld.Name = FieldName And Tbf.Name = TableName Then '判断表中对应的字段 For Each P In fld.Properties List1.AddItem P.Name & " - " & P.Value Next End If Next Next End Sub
你看看添加标题那段代码 Sub Explistv(ll As ListView, rr As ADODB.Recordset, bt As Boolean) '将ADO记录集直接输出到LISTVIEW Dim r As New ADODB.Recordset Dim i As Integer Dim itmx As ListItem Set r = rr ll.ListItems.Clear'添加标题 If bt = True Then ll.ColumnHeaders.Clear For i = 0 To r.Fields.Count - 1 ll.ColumnHeaders.Add , , Trim(r.Fields(i).Name) Next End If '添加内容 Do While Not r.EOF Set itmx = ll.ListItems.Add(, , Trim(r.Fields(0).Value)) For i = 1 To r.Fields.Count - 1 '字符型 If r.Fields(i).Type = adChar Or adLongVarChar Or adVarChar Then itmx.SubItems(i) = IIf(IsNull(r.Fields(i).Value), " ", r.Fields(i).Value) End If '数字型 If r.Fields(i).Type = adDouble Or adNumeric Then itmx.SubItems(i) = IIf(IsNull(r.Fields(i).Value), 0, r.Fields(i).Value) End If '日期型 If r.Fields(i).Type = adDate Then itmx.SubItems(i) = Format(r.Fields(i).Value, "yyyy-MM-dd") End If Next r.MoveNext Loop 'r.Close End Sub
Dim TestDB As Database '需打开的数据库
Dim Tbf As DAO.TableDef
Dim fld As DAO.Field
Dim P As DAO.Property
Dim TableName As String
Dim FieldName As String
On Error Resume Next
TableName = "Content" '表名
FieldName = "AgeType" '字段名
'打开数据库
Set TestDB = DBEngine(0).OpenDatabase("D:\a.mdb")
'取表的说明
List1.AddItem "表的属性"
For Each Tbf In TestDB.TableDefs
If Tbf.Name = TableName Then '判断表名
For Each P In Tbf.Properties
List1.AddItem P.Name & " - " & P.Value
Next
End If
Next
List1.AddItem ""
'取字段的说明
List1.AddItem "字段的属性"
For Each Tbf In TestDB.TableDefs
For Each fld In Tbf.Fields
If fld.Name = FieldName And Tbf.Name = TableName Then '判断表中对应的字段
For Each P In fld.Properties
List1.AddItem P.Name & " - " & P.Value
Next
End If
Next
Next
End Sub
Sub Explistv(ll As ListView, rr As ADODB.Recordset, bt As Boolean)
'将ADO记录集直接输出到LISTVIEW
Dim r As New ADODB.Recordset
Dim i As Integer
Dim itmx As ListItem
Set r = rr
ll.ListItems.Clear'添加标题
If bt = True Then
ll.ColumnHeaders.Clear
For i = 0 To r.Fields.Count - 1
ll.ColumnHeaders.Add , , Trim(r.Fields(i).Name)
Next
End If
'添加内容
Do While Not r.EOF
Set itmx = ll.ListItems.Add(, , Trim(r.Fields(0).Value))
For i = 1 To r.Fields.Count - 1
'字符型
If r.Fields(i).Type = adChar Or adLongVarChar Or adVarChar Then
itmx.SubItems(i) = IIf(IsNull(r.Fields(i).Value), " ", r.Fields(i).Value)
End If
'数字型
If r.Fields(i).Type = adDouble Or adNumeric Then
itmx.SubItems(i) = IIf(IsNull(r.Fields(i).Value), 0, r.Fields(i).Value)
End If
'日期型
If r.Fields(i).Type = adDate Then
itmx.SubItems(i) = Format(r.Fields(i).Value, "yyyy-MM-dd")
End If
Next
r.MoveNext
Loop
'r.Close
End Sub