忽略Excel宏中的SQL查询错误

时间:2014-09-17 08:50:32

标签: sql excel vba excel-vba

我在EXCEL宏中有一组查询,这些查询在宏启动时执行

如果对于某些查询,数据库中不存在指示的字段,则执行宏会出现以下错误:

  

运行时错误'3021':BOF或EOF为True或当前记录   已被删除。请求的操作需要当前记录。

我想保护查询的执行,以便在存在这种情况时(数据库中缺少相应的列或与查询相关的任何其他类型的错误),宏只是继续执行而不输出任何一种错误,留下相应的单元格,其结果应该是空白的。

相关的代码:

Range("G7").Select
Set rs = conn.Execute("SELECT ....")
strResult = rs.Fields(0) 

1 个答案:

答案 0 :(得分:0)

您需要在if语句中检查BOFEOF是否为真。使用上面的代码,您可以这样做:

Range("G7").Select
Set rs = conn.Execute("SELECT ....")

If Not rs.BOF and Not rs.EOF Then

    strResult = rs.Fields(0)

End If