我在EXCEL宏中有一组查询,这些查询在宏启动时执行
如果对于某些查询,数据库中不存在指示的字段,则执行宏会出现以下错误:
运行时错误'3021':BOF或EOF为True或当前记录 已被删除。请求的操作需要当前记录。
我想保护查询的执行,以便在存在这种情况时(数据库中缺少相应的列或与查询相关的任何其他类型的错误),宏只是继续执行而不输出任何一种错误,留下相应的单元格,其结果应该是空白的。
相关的代码:
Range("G7").Select
Set rs = conn.Execute("SELECT ....")
strResult = rs.Fields(0)
答案 0 :(得分:0)
您需要在if语句中检查BOF
和EOF
是否为真。使用上面的代码,您可以这样做:
Range("G7").Select
Set rs = conn.Execute("SELECT ....")
If Not rs.BOF and Not rs.EOF Then
strResult = rs.Fields(0)
End If