Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请教一判断语句

sjm  发表于:2013-10-26 09:26:59  
复制

想在一个数据库中判断是否存在某个指定表,应该怎么写语句?或者模块也可以.

 

Top
金宇 发表于:2013-10-26 10:09:33

你可以先新建个模块,放入以下函数


'=========================================================================================
'函数名称: ObjectIsExists
'功能描述: 检查数据库中某个对象是否存在,可以是窗体,表、查询,报表、宏等
'输入参数: strObjectType 必选的。strObjectType 参数是一个 AcObjectType 对象类型常量,
'                         用于指定要检查的数据库对象的类型acForm,acQuery,acReport,acTable,acMacro,acModule
'           strObjectName 必选的。strObjectName 参数是要检查的数据库对象的名称
'返回参数: True/False
'使用示例: ObjectIsExists(acForm,"窗体名称")
'作    者: 金宇
'创建日期: 2012-1-10
'=========================================================================================
Function ObjectIsExists(ByVal strObjectType As AcObjectType, ByVal strObjectName As String) As Boolean
On Error GoTo ErrorHandler
    Dim strResult As String
    Select Case strObjectType
    Case acTable
        strResult = CurrentDb.TableDefs(strObjectName).Name
    Case acQuery
        strResult = CurrentDb.QueryDefs(strObjectName).Name
    Case acForm
        strResult = CurrentProject.AllForms(strObjectName).Name
    Case acReport
        strResult = CurrentProject.AllReports(strObjectName).Name
    Case acMacro
        strResult = CurrentProject.AllMacros(strObjectName).Name
    Case acModule
        strResult = CurrentProject.AllModules(strObjectName).Name
    End Select
    ObjectIsExists = True
Exithere:
     Exit Function
ErrorHandler:
    Resume Exithere
End Function
然后在需要判断的地方加代码 


if ObjectIsExists(acTable, "需要检测的表名称") then
msgbox "存在此表!"

else

msgbox "不存在此表"

end if






煮江品茶 发表于:2013-10-26 14:46:39

if dcount("*","MSysObjects","name=' 阁下的表名称' " & " and type=6 or type=8")>0 then

        msgbox "该表存在!"

else

       msgbox "该表不存在!"

end if



殷小宝 发表于:2013-10-27 10:56:55

判断表名是否存在函数

Public Function TableExists(tblName As String) As Boolean '检测表是否存在,如果是返回True值。
    Dim i As Integer, tblDefs As TableDefs
    Set tblDefs = CurrentDb.TableDefs
    For i = 1 To tblDefs.Count - 1
        If tblName = tblDefs(i).Name Then TableExists = True: Exit Function
    Next i
End Function

 



总记录:3篇  页次:1/1 9 1 :