循環訪問一組TableDefs,如何確定每個TableDef是否代表鏈接表,而不是本地表?如何搜索鏈接表的TableDefs?
6
A
回答
10
對於鏈接表,TableDef.Connect
屬性包含連接信息。但對於本地表,.Connect
屬性是一個空字符串。
這樣你就可以知道哪些是其通過.Connect
Dim tdf As DAO.TableDef
With CurrentDb
For Each tdf In .TableDefs
If Len(tdf.Connect) > 0 Then
Debug.Print tdf.Name, tdf.Connect
End If
Next
End With
檢查Len()
這種方法比較簡單,我比tdf.Attributes And dbAttachedODBC Or tdf.Attributes And dbAttachedTable
,或ADOX方法記住。它也比ADOX方法簡潔得多。
3
基於http://p2p.wrox.com/access-vba/37117-finding-linked-tables.html(鏈接的代碼導致無限循環,所以我修改它):
Dim tdf As DAO.TableDef
With CurrentDb
For Each tdf In .TableDefs
If tdf.Attributes And dbAttachedODBC Or tdf.Attributes And dbAttachedTable Then
' We found a linked table! Now, show its location.
Debug.Print tdf.Connect
End If
Next
End With
直接從http://p2p.wrox.com/access-vba/37117-finding-linked-tables.html,所述ADO對方(未驗證代碼)摘自:
Sub ListAllTables(cnn As ADODB.Connection)
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Set cat = New ADOX.Catalog
cat.ActiveConnection = cnn
cat.Tables.Refresh
For Each tbl In cat.Tables
Select Case tbl.Type
Case "ACCESS TABLE"
Debug.Print tbl.Name & " - Access table"
Case "SYSTEM TABLE"
Debug.Print tbl.Name & " - System table"
Case "TABLE"
Debug.Print tbl.Name & " - Native table"
Case "LINK"
Debug.Print tbl.Name & " - Linked table"
Case "PASS-THROUGH"
Debug.Print tbl.Name & " - ODBC DSN Linked table"
End Select
Next tbl
Set tbl = Nothing
Set cat = Nothing
End Sub
相關問題
- 1. 搜索鏈接列表
- 2. 單鏈接列表搜索
- 3. 搜索鏈接列表
- 4. 如何在鏈接錶鏈接的多個表上進行文本搜索?
- 5. PDO搜索表單斷開的鏈接
- 6. 正在搜索鏈接的列表C++
- 7. 鏈接到實際搜索頁面的搜索表單
- 8. 搜索結果的鏈接
- 9. 我們如何減少鏈接列表中的搜索時間?
- 10. 如何在C++的鏈接列表中搜索
- 11. 如何搜索html鏈接並使用python打印鏈接?
- 12. 需要幫助搜索鏈接列表
- 13. 搜索功能 - 鏈接列表
- 14. 在鏈接列表中搜索
- 15. 在鏈接列表中搜索數據
- 16. 搜索鏈接列表是否爲空
- 17. Rails搜索表可點擊鏈接
- 18. 搜索鏈接列表時出錯
- 19. MySQL搜索文本和鏈接表
- 20. 鏈接列表搜索方法
- 21. 搜索鏈接列表匹配
- 22. C++鏈接列表搜索錯誤:STATUS_ACCESS_VIOLATION
- 23. 在雙向鏈接列表中搜索
- 24. 如何在鏈接列表中搜索和刪除
- 25. CodeIgniter鏈接到搜索
- 26. Hibernate搜索與Eclipse鏈接
- 27. 搜索並插入鏈接
- 28. 鏈接到Google搜索href
- 29. 搜索鏈接從文件
- 30. 嘗試鏈接使用group_by連接表上的搜索鏈接文本搜索時出現錯誤