【问题标题】:Query to check if a table in access database exists查询access数据库中的表是否存在
【发布时间】:2013-09-24 01:58:51
【问题描述】:

我想使用查询来检查我的访问数据库中是否存在表,如果不存在则我可以创建该表。我正在使用 Ruby 调用函数来执行 SQL 查询,例如插入、选择、更新、创建等。

我查找了一些解决方案,例如 MSysObjects,但它不适用于 Access 2007。

那么任何熟悉Access数据库的人都可以帮我解决这个问题吗?

谢谢。

【问题讨论】:

  • 您可以添加您正在使用的访问版本吗?当人们稍后发现这个问题时,“最新版本的 Access”将与现在不同。
  • 如果您必须使用查询来检查表是否存在,则必须更改MSysObjects 表权限以赋予自己读取权限。还有其他方法(但不是查询)来检查表是否存在。你可以使用查询以外的东西吗?
  • 我实际上是在使用 Ruby 调用一个执行 SQL 查询语句的方法 Execute,所以我想这是我能做到这一点的唯一方法
  • 如果您知道如何处理来自 Ruby 的错误,请考虑尝试创建表并在表已存在时捕获错误。
  • @Hansup,感谢您的建议,我被困在寻找解决此问题的查询中,但忘记了我可以捕捉到异常。它对我有用。

标签: sql ruby ms-access-2007


【解决方案1】:

这个问题已经解决了,我被困在寻找SQL查询来解决这个问题,但是我忘记了当没有这样的表存在时我可以捕获异常然后执行一些操作。感谢@HansUp 的建议。

【讨论】:

    【解决方案2】:
    Exists = IsObject(CurrentDb.TableDefs(tablename))
    

    【讨论】:

    • tablename 是一个不存在的名字时,会抛出错误#3265, "Item not found in this collection."
    • 我正在尝试运行这个,但它给了我错误“无效的 SQL 语句;预期的 SELECT、DELETE、UPDATE....”
    猜你喜欢
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    相关资源
    最近更新 更多