我在Form_Load中有以下过程:
Dim accObject As Access.AccessObject
For Each accObject In CurrentData.AllTables
Me.cboSelectTable.AddItem accObject.Name
Next
这将使用所有表(包括系统表和链接到SQL Server的表)填充组合框。问题是,我只希望找回可以编辑的表格。如何使用VBA确定?
答案 0 :(得分:1)
检索目标表名称集时,可以忽略系统表(Like "MSys*"
)和临时表(Like "~*"
)。并通过检查Connect
属性是否为零长度字符串以外的任何内容来忽略链接表。
Dim tdf As DAO.TableDef
For Each tdf In CurrentDb.TableDefs
With tdf
If Not (.Name Like "~*" Or .Name Like "MSys*") Then
If Len(.Connect) = 0 Then
Me.cboSelectTable.AddItem .Name
End If
End If
End With
Next
Set tdf = Nothing
如果这不能满足您的所有需求,您还可以检查每个表格tdf.Updatable
是否为真。