在VBA中获取查询类型属性

4

有没有办法在VBA中识别查询的类型(即追加查询、选择查询、删除查询、制作表格查询)? 我正在创建一个带有字符串参数(查询)的函数。 它需要检查查询是否存在,然后其操作将取决于查询的类型。


1
我认为最简单的方法是对前几个字符运行一些字符串验证,以查找SELECT、DELETE、INSERT或CREATE。 - Chance
1
解析SQL语句文本比起一开始看起来要复杂得多。检查QueryDef.Type会更简单。 - HansUp
1个回答

3
检查查询的QueryDef.Type属性。它返回DAO QueryDefTypeEnum枚举中的值。(您也可以在VB编辑器中的对象浏览器中检查该枚举,而不是在网上查找。)
以下是一个即时窗口会话,演示了您可以在VBA代码中使用的部分内容。
? DAO.QueryDefTypeEnum.dbQSelect
 0 
? CurrentDb.QueryDefs("qrySelect").Type
 0 
? CurrentDb.QueryDefs("qrySelect").Type = dbQSelect
True
? DAO.QueryDefTypeEnum.dbQDelete
 32 
? CurrentDb.QueryDefs("qryDelete").Type = dbQDelete
True
' qryBogus does not exist, so the next statement throws
' Error 3265: Item not found in this collection. 
? CurrentDb.QueryDefs("qryBogus").Type

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接