Excel SQL查询 – 其中(somefield)为空 – 无法正常工作

在Excel SQL Query where子句中遇到一些问题。

Excel表格中的数据(据我所知)是空的,单元格中没有数值和格式等。 我试图从Outlook(在VBA中)运行以下查询。

strQuery = "Select Count(ReviewDate) as UnassignedCount FROM [PatComDB$] Where ReviewDate is null " 

但查询返回0。

我已经寻找了一些解决scheme,并尝试了以下。

 strQuery = "Select Count(ReviewDate) as UnassignedCount FROM [PatComDB$] Where IIF(ReviewDate is null,0,ReviewDate) " 

(其中返回7 – 非空字段的计数)

并没有运气。

我的连接子句如下(如果有用的话)

 Set Con = New ADODB.Connection With Con .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=<some link>;" & _ "Extended Properties=Excel 8.0;" .Open End With 

我的床单看起来像这样

 IdeaID RPA Type SubDate ReviewDate IdeaID1 RPA1234 Existing 01/01/2015 IdeaID2 RPA1235 New 02/01/2015 IdeaID3 RPA1236 Existing 03/01/2015 IdeaID4 RPA0001 New 04/01/2015 01/09/2015 IdeaID5 RPA0001 New 05/01/2015 02/09/2015 IdeaID6 RPA0001 New 06/01/2015 07/09/2015 IdeaID7 RPA0001 New 07/01/2015 07/09/2015 IdeaID8 RPA0001 New 08/01/2015 07/09/2015 IdeaID9 RPA0001 New 09/01/2015 07/09/2015 IdeaID10 RPA0001 New 10/01/2015 07/09/2015 

有没有人有任何想法,我可能会出错,无论是我的查询或我的工作表中的数据也许?

注意:不幸的是我在软件方面仅限于Outlook和Excel。

提前致谢。

编辑:

忘了提及在相同的数据集上运行以下查询返回NULL

 strQuery = "Select * FROM [PatComDB$] Where Index = 1" rsARR = rs.GetRows Debug.Print (rsARR(6, 0)) 

经过几次代码变更尝试后,我自己找出了答案。

我不得不将数列更改为数据列,使其正常工作(在这种情况下,我使用索引字段永远不会是空的)使用的代码如下。

 strQuery = "Select Count(Index) as UnassignedCount FROM [PatComDB$] Where ReviewDate = Null OR ReviewDate = 0 OR ReviewDate is null" 

我从这里回答了一些build议,并从我的研究中得到了其他答案,以确保我捕获了空单元格的每一个可能性(我认为)。

我只是猜测这里试试这个:

 strQuery = "Select Count(IIF(ReviewDate is null,0,ReviewDate)) as UnassignedCount FROM [PatComDB$] Where ReviewDate = 0" 

由于上述没有工作尝试这个我已经在访问数据库中使用这个,因为有时数据不是null它是空白的。

  strQuery = "Select Count(ReviewDate) as UnassignedCount FROM [PatComDB$] Where ReviewDate is Null Or " & Char(34) & Char(34) 

不知道它是否适用于Excel查询。 值得一试