在Access数据库中通过SQL语句找到某一表是否存在的确是一件困难的事。幸好, Access本身就有一些隐含的数据对象能够保存你库中的信息,今天我就遇到了要用SQL,通过程序查询某一表是否存在的问题,解决方法如下:
由于Access数据库本身的“管理员”组没有访问隐含对象的权限,因此先要:工具 -> 选项 -> 视图 -> 隐藏对象、系统对象,前面的勾选上。
然后,工具 -> 安全 -> 用户与组的权限,在对象名称中选定 MSysObjects(我只用到这个对象,如果需要用到其它的,可以再选) ,然后权限中设置“读取数据”权限。
最后,保存设置,在程序中就可以通过SQL语句查询表是否存在了,语句如下:
Select Count(*) AS RTab FROM MSysObjects Where (((MSysObjects.Name) Like "需判断的已知表名"));
返回1为存在, 0为不存在