ADO-excel,SQL查询中的问题

时间:2012-03-13 02:57:55

标签: sql excel excel-vba ado vba

只有当ADODC1表中存在Sect列时,ado中的SQL查询才能正常工作 如果ADODC1表没有Sect列,则会抛出错误 请更正我的以下查询...

strSQL = "Select Name,Dept,IIF(ISNULL(Sect),'',Sect) AS Sect from [Adodc1$] UNION Select Name,Dept,Sect from [Adodc2$];"

如果ADODC1表中没有Sect列,则需要将结果显示为空。

1 个答案:

答案 0 :(得分:2)

你的意思是“需要结果为空”。如果您错过了错误,您将获得一个关闭的记录集。这是'空的'吗?

我怀疑这是你需要做的(伪代码):

On Error Resume Next
strSQL = "Select Name,Dept,IIF(ISNULL(Sect),'',Sect) AS Sect from [Adodc1$]" & _
             " UNION Select Name,Dept,Sect from [Adodc2$];"

Set rs = cn.Execute(strSQL)

If rs.State <> adStateOpen Then

  strSQL = "Select Name,Dept,NULL AS Sect from [Adodc1$]" & _
             " UNION Select Name,Dept,Sect from [Adodc2$];"

  Set rs = cn.Execute(strSQL)

    If rs.State <> adStateOpen Then

        ' Deeper problems...