Что вы подразумеваете под «нужны результаты как пустые».Если вы не справитесь с ошибкой, вы получите закрытый набор записей.Это «пусто»?
Я подозреваю, что это то, что вам нужно сделать (псевдокод):
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...