如何用SQL语句来判断已知表是否存在

如何判断库中已知表是否存在今日受人之托,帮他解决这个问题,代码为通常的引用Dao做的一模块:

Function fExistTable(strTableName As String) As Integer
Dim db As Database
Dim i As Integer  
  Set db = DBEngine.Workspaces(0).Databases(0)  
  fExistTable = False
  db.TableDefs.Refresh
  For i = 0 To db.TableDefs.Count - 1
    If strTableName = db.TableDefs(i).Name Then
      'Table Exists
      fExistTable = True
      Exit For
    End If
  Next i
  Set db = Nothing
End Function
Private Sub 命令0_Click()
fExistTable
End Sub

用该事件出现‘参数不可选’的错误。仔细研究,发现fExistTable缺少参数,即已知表名没有在代码中反应。

修改为:

Private Sub 命令0_Click()
fExistTable(”需判断的已知表名”)
End Sub

End Sub不再报错。仔细分析,其实是用 ”已知表名” 通过Dao判断数据库中是否存在,如果fExistTable的值为True就是存在,否则就是不存在。

解决问题之余,想起Access数据库也有系统表,存放有对象名,可否做一查询来判定?

经验证:

SELECT Count(*) AS Qty
FROM MSysObjects
WHERE (((MSysObjects.Name) Like "需判断的已知表名"));

可以实现需求。如果Qty>0,就表示表已存在,否则就不存在。

时间: 2024-09-22 07:32:37

如何用SQL语句来判断已知表是否存在的相关文章

SQL语句判断已知表是否存在

  怎样用SQL语句来判断已知表是否存在 答:具体解决方法如下: 注释:以下代码为通常的引用Dao做的一模块 Function fExistTable(strTableName As String) As Integer Dim db As Database Dim i As Integer Set db = DBEngine.Workspaces(0).Databases(0) fExistTable = False db.TableDefs.Refresh For i = 0 To db.T

sql语句-如何用SQL语句实现两张表(无关联)查询后,分别将各自的一个字段,插入一个新表。

问题描述 如何用SQL语句实现两张表(无关联)查询后,分别将各自的一个字段,插入一个新表. 有A.B.C三张表如下, 表 A 表B 学生ID(主键) 学生名称 课程ID(主键)| 课程名称 表 C 学生ID 课程ID (联合主键) 那么,通过SQL语句操作如何用学生姓名和课程名(只能获取学生姓名和课程名)将课程ID和学生ID插入到C表(C表中有课程ID和学生ID并且是联合主键),感激不尽. 解决方案 你可以定义2个变量,分别从表A表B用名称查询到ID.在表C的新增语句中使用这2个变量. 不过你这

sql-如何用SQL语句查出该表中 不为空的值得数量

问题描述 如何用SQL语句查出该表中 不为空的值得数量 如何用SQL语句查出该表中 不为空的值得数量 (studentLoginId不为空的有几个,parentLoginId不为空的有几个,它们的和) 解决方案 select (select count(1) from table where studentLoginId is null) scount, (select count(1) from table where parentLoginId is null)) pcount, (sele

sql-如何用SQL语句查询Table表中的ID1中的O1,O2,O3为1 的数目

问题描述 如何用SQL语句查询Table表中的ID1中的O1,O2,O3为1 的数目 如何用SQL语句查询Table表中的ID1中的O1,O2,O3为1 的数目 Table ID O1 O2 O3 ID1 1 1 0 ID2 1 0 1 ID3 0 1 1 解决方案 select COUNT(*), (select COUNT(*) FROM a where O1='1') AS COUNTO1,(SELECT COUNT(*) FROM A WHERE O2="1") AS COUN

数据库表中日期记录为2009-04-23的形式,如何用sql语句查询2009年4月份的所有记录,请帮帮我!!谢谢!!

问题描述 数据库表中日期记录为2009-04-23的形式,如何用sql语句查询2009年4月份的所有记录,请帮帮我!!谢谢!! 解决方案 解决方案二:补充一句我需要HQL语句解决方案三:fromClasswheredatebetweendate'2009-04-01'anddate'2009-04-30'解决方案四:引用2楼endlesspass的回复: fromClasswheredatebetweendate'2009-04-01'anddate'2009-04-30' 就只有这一种思路了吗

oracle-麻烦大家帮我看看下面的想法如何用sql语句实现?

问题描述 麻烦大家帮我看看下面的想法如何用sql语句实现? 表结构如下: id name classs num regNo 1 张三 一班 3.5 12 2 张三 一班 2.5 13 3 张三 二班 4.5 15 4 李四 二班 6.5 16 最后结果: id name classs num regNo 1 张三 一班 6 12 2 张三 二班 4.5 15 3 李四 二班 6.5 16 请问用sql如何实现呢? 解决方案 select idnamesum(num) as nummin(regN

sql-如何用SQL语句通过1去查询N?

问题描述 如何用SQL语句通过1去查询N? 解决方案 只需要通过1的ID查询N的记录就好了! 解决方案二: sql 语句的执行顺序(1)逻辑查询的各个阶段SQL中的n+1次select语句查询问题SQL中的n+1次select语句查询问题 解决方案三: 这个不就是普通的两张表自动关联而已嘛?通关关联两张表,把结果集放到java的容器里面,每条数据就代表的这种关系了啊,至于要展示成这样,就要看你报表怎么画了啊,ORACLE每条数据呈现的都是这两个表的一种对应关系,比如说1 研发部 1 刘备1 研发

sql-SQL 如何用SQL语句实现下列的想法

问题描述 SQL 如何用SQL语句实现下列的想法 假设存在一张手术信息表, id name operDate 1 张三 2015-07-21 11:30:21 2 李四 2015-07-21 13:45:21 3 张三 2015-07-22 09:18:35 4 王五 2015-07-23 13:54:46 5 张三 2015-07-25 12:00:00如何用SQL实现,判断有没有在24小时内再次做手术的呢?求指教 解决方案 1.分组后前后记录时间相减,然后看相减后是不是有小于24的.也就是用

sql语句-表T(A)包含正整数,可能有重复,构造一个SQL语句查询不在表T中的最小正整数

问题描述 表T(A)包含正整数,可能有重复,构造一个SQL语句查询不在表T中的最小正整数 表T(A)包含正整数,可能有重复,构造一个SQL语句查询不在表T中的最小正整数,需要考虑表T包含或不包含正整数1两种情况.不能编程实现.考虑了半天没有很好的思路,请大家指点则个 解决方案 DECLARE @minvalue INT = select min(A) from T IF minvalue > 1 return 1 ELSE DECLARE @maxvalue INT = select max(A