Проблема в ADO-Excel, SQL-запрос - PullRequest
0 голосов
/ 13 марта 2012

SQL-запрос в ado работает нормально, только если в листе ADODC1 присутствует столбец Sect.
Если на листе ADODC1 нет столбца Sect, он выдает ошибку.
Пожалуйста, исправьте мой запрос ниже ...

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

Если столбец Sect отсутствует на листе ADODC1, результаты должны быть пустыми.

1 Ответ

2 голосов
/ 13 марта 2012

Что вы подразумеваете под «нужны результаты как пустые».Если вы не справитесь с ошибкой, вы получите закрытый набор записей.Это «пусто»?

Я подозреваю, что это то, что вам нужно сделать (псевдокод):

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...
...