Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在VBA中获取查询类型属性_Ms Access_Vba - Fatal编程技术网

Ms access 在VBA中获取查询类型属性

Ms access 在VBA中获取查询类型属性,ms-access,vba,Ms Access,Vba,是否有一种方法可以在VBA中标识查询的类型(即追加查询、选择查询、删除查询、生成表查询)?我正在创建一个带有字符串参数(查询)的函数。它需要检查查询是否存在,然后其操作将取决于查询的类型。检查查询的QueryDef.type属性。它将从中返回一个值。(您也可以从VB编辑器在对象浏览器中检查该枚举,而不是在线查找。) 下面是一个即时窗口会话,它演示了可以在VBA代码中使用的部分 ?DAO.QueryDefTypeEnum.dbQSelect 0 ? CurrentDb.querydfs(“qryS

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

检查查询的
QueryDef.type
属性。它将从中返回一个值。(您也可以从VB编辑器在对象浏览器中检查该枚举,而不是在线查找。)

下面是一个即时窗口会话,它演示了可以在VBA代码中使用的部分

?DAO.QueryDefTypeEnum.dbQSelect
0
? CurrentDb.querydfs(“qrySelect”).Type
0
? CurrentDb.QueryDefs(“qrySelect”).Type=dbQSelect
真的
? DAO.QueryDefTypeEnum.dbQDelete
32
? CurrentDb.QueryDefs(“qryDelete”).Type=dbQDelete
真的
'qryBogus不存在,因此下一个语句将抛出
'错误3265:在此集合中找不到项。
? CurrentDb.querydfs(“qryBogus”).Type

我认为最简单的方法是对前几个字符进行字符串验证,以查找SELECT、DELETE、INSERT或CREATE。解析SQL语句文本比乍一看要复杂得多。检查
QueryDef.Type
更简单。