Private Sub Command6_Click() Dim adoXClog As Variant Dim adoObject As Variant Dim objItem As Variant Dim objTemp As Variant Dim MyField As Variant Set adoXClog = CreateObject("ADOX.Catalog") adoXClog.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库.mdb;" '"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库" Set adoObject = adoXClog.Tables("table") For Each objItem In adoObject.Keys For Each objTemp In objItem.Columns For Each MyField In adoObject.Columns '这部分效率没有优化,自己优化一下吧 If MyField.Properties("AutoIncrement").Value = True And MyField.Name = objTemp.Name Then Debug.Print objTemp.Name End If Next Next Next End Sub
楼上:我运行了代码好像不对啊 错误提示是“在对应所需名称或序数的集合中,未找到项目” 提示在这句上 Set adoObject = adoXClog.Tables("table")我把你的代码加到这些程序下面 adoCon.ConnectionString = sConnectionString adoCon.Open With adors .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockPessimistic .ActiveConnection = sConnectionString .Source = "select * from " & tableName .Open End With Set adors = adoCon.Execute("delete * from " & tableName) adors.Open "select * from " & tableName, adoCon, adOpenKeyset, adLockOptimistic Dim adoXClog As Variant Dim adoObject As Variant Dim objItem As Variant Dim objTemp As Variant Dim MyField As Variant Set adoXClog = CreateObject("ADOX.Catalog") adoXClog.ActiveConnection = sConnectionString '我修改的地方 Set adoObject = adoXClog.Tables("table") For Each objItem In adoObject.Keys For Each objTemp In objItem.Columns For Each MyField In adoObject.Columns '这部分效率没有优化,自己优化一下吧 If MyField.Properties("AutoIncrement").Value = True And MyField.Name = objTemp.Name Then Debug.Print objTemp.Name End If Next Next Next
Set adoObject = adoXClog.Tables("table") table是你要查找的表名,比如我这access有个自己建的表叫table
Dim adoXClog As Variant
Dim adoObject As Variant
Dim objItem As Variant
Dim objTemp As Variant
Dim MyField As Variant
Set adoXClog = CreateObject("ADOX.Catalog")
adoXClog.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库.mdb;" '"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库"
Set adoObject = adoXClog.Tables("table")
For Each objItem In adoObject.Keys
For Each objTemp In objItem.Columns
For Each MyField In adoObject.Columns '这部分效率没有优化,自己优化一下吧
If MyField.Properties("AutoIncrement").Value = True And MyField.Name = objTemp.Name Then
Debug.Print objTemp.Name
End If
Next
Next
Next
End Sub
adoCon.ConnectionString = sConnectionString
adoCon.Open
With adors
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockPessimistic
.ActiveConnection = sConnectionString
.Source = "select * from " & tableName
.Open End With
Set adors = adoCon.Execute("delete * from " & tableName)
adors.Open "select * from " & tableName, adoCon, adOpenKeyset, adLockOptimistic Dim adoXClog As Variant
Dim adoObject As Variant
Dim objItem As Variant
Dim objTemp As Variant
Dim MyField As Variant
Set adoXClog = CreateObject("ADOX.Catalog")
adoXClog.ActiveConnection = sConnectionString '我修改的地方
Set adoObject = adoXClog.Tables("table")
For Each objItem In adoObject.Keys
For Each objTemp In objItem.Columns
For Each MyField In adoObject.Columns '这部分效率没有优化,自己优化一下吧
If MyField.Properties("AutoIncrement").Value = True And MyField.Name = objTemp.Name Then
Debug.Print objTemp.Name
End If
Next
Next
Next
table是你要查找的表名,比如我这access有个自己建的表叫table