使用ACCESS ,如何判断一个表的某个字段是否存在???

keyword123 2009-04-18 02:39:34
使用ACCESS 如何判断一个表是否存在?
下面可以:
SELECT * from MSysObjects where type=1 and name='MyTable'



如果判断一个表的某个字段是否存在?怎么写?

...全文
1017 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hahaxiaoa 2010-06-26
  • 打赏
  • 举报
回复


很少用ACCESS数据库,受教了.
zhh0086 2009-12-14
  • 打赏
  • 举报
回复
[可以判断,我是利用先列出所有的表名,在列出对应的字段名,然后做比较,就可以返回你要的结果了。

我这段代码是把所有的表名、字段名分别存在一个文件了
Private Sub Command5_Click()
'返回所有的表的名称--字段名称
Dim fileNo As Integer, i As Integer, j As Integer, ii As Integer, jj As Integer
Dim s1 As String
Dim tabName(0 To 10000) As String, colName(0 To 10000) As String
DataPath = App.Path & "\" & Format(Date, "YYYYMMDD") & ".mdb"
cn.ConnectionString = DataConnectString(DataPath, passStr)
cn.Open
Set rs = cn.OpenSchema(adSchemaTables) '表名
i = 0
Do While Not rs.EOF
Debug.Print rs!table_name
tabName(i) = rs!table_name
i = i + 1
rs.MoveNext
Loop
rs.Close
Set rs = cn.OpenSchema(adSchemaColumns) '字段
j = 0
While Not rs.EOF
Debug.Print rs!COLUMN_NAME
colName(j) = rs!COLUMN_NAME
j = j + 1
rs.MoveNext
Wend
rs.Close
cn.Close
If Dir(App.Path & "\Tables.txt", vbNormal) = "" Then
Open App.Path & "\Tables.txt" For Output As #1 '创建一个文本文件
Close #1
End If
If Dir(App.Path & "\Column.txt", vbNormal) = "" Then
Open App.Path & "\Column.txt" For Output As #1 '创建一个文本文件
Close #1
End If

If Dir(App.Path & "\Tables.txt", vbNormal) <> "" Then
fileNo = FreeFile
Open App.Path & "\Tables.txt" For Output As #fileNo
For ii = 0 To i - 1
Write #fileNo, tabName(ii)
Next ii
Close #fileNo
End If
If Dir(App.Path & "\Column.txt", vbNormal) <> "" Then
fileNo = FreeFile
Open App.Path & "\Column.txt" For Output As #fileNo
For jj = 0 To j - 1
Write #fileNo, colName(jj)
Next jj
Close #fileNo
End If
End Sub
changechange 2009-05-08
  • 打赏
  • 举报
回复
请参考以下文章及其相关文章:

如何只用ADO列举所有表的所有字段?
http://www.access911.net/?kbid;72FABF1E12DCEBF3



参考上述代码,既然能列出所有表和字段,那么肯定




--911--
mig1975 2009-05-07
  • 打赏
  • 举报
回复
Access的系统表中好像只可以查看有哪些表。
在网上找到了一个答案,不知道对楼主有用不。


'使用ADOX。

'引用ADOX

'-->VBA窗口“工具”菜单

'-->引用

'-->MicrosoftADOExt.2.XforDLLandSecurity

PublicSublist(strTblNameAsString)
DimCnnAsNewADODB.Connection
DimFldAsNewADOX.Column
DimCatAsNewADOX.Catalog
DimTblAsNewADOX.Table

SetCnn=CurrentProject.Connection
SetCat.ActiveConnection=Cnn
SetTbl.ParentCatalog=Cat
SetTbl=Cat.Tables(strTblName)


Debug.Print"字段个数:"&Tbl.Columns.Count

ForEach FldInTbl.Columns
Debug.Print"字段名:"&Fld.Name&",宽度:"&Fld.DefinedSize
Next

EndSub
tanxiaolin520 2009-05-07
  • 打赏
  • 举报
回复
先取值后判断.
dxy2798 2009-04-28
  • 打赏
  • 举报
回复
可以用错误陷阱,如果连接该字段ERROR即是不存在。

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧