首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel SQL查询(其中(某个字段)为空)不能正常工作。

Excel SQL查询(其中(某个字段)为空)不能正常工作。
EN

Stack Overflow用户
提问于 2015-09-16 16:59:52
回答 2查看 6K关注 0票数 0

Excel SQL查询where子句有点问题。

excel中的工作表中的数据(据我所见)是空的,单元格中没有值和格式等。我正在尝试从Outlook运行以下查询(在VBA中)。

代码语言:javascript
复制
strQuery = "Select Count(ReviewDate) as UnassignedCount FROM [PatComDB$]
Where ReviewDate is null "

但是查询返回0。

我已经寻找了一些解决方案,并尝试了以下几点。

代码语言:javascript
复制
strQuery = "Select Count(ReviewDate) as UnassignedCount FROM [PatComDB$]
Where IIF(ReviewDate is null,0,ReviewDate) "

(返回7-非空字段的计数)

却没有运气。

我的连接子句如下(如果它有任何用途)

代码语言:javascript
复制
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

我的床单看起来像这样

代码语言:javascript
复制
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

代码语言:javascript
复制
strQuery = "Select * FROM [PatComDB$] Where Index = 1"
rsARR = rs.GetRows
Debug.Print (rsARR(6, 0))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-17 13:48:42

经过几次代码变体的尝试之后,我自己找到了答案。

我必须将count列更改为包含数据的列,这样它才能正常工作(在本例中,我使用了Index字段,它永远不会是空的)代码如下所示。

代码语言:javascript
复制
strQuery = "Select Count(Index) as UnassignedCount FROM [PatComDB$] 
Where ReviewDate = Null OR ReviewDate = 0 OR ReviewDate is null"

我在这里使用了一些来自答案的建议,以及我的研究中的其他答案,以确保我捕捉到一个空单元的每一个可能发生的情况(我认为)。

票数 1
EN

Stack Overflow用户

发布于 2015-09-16 18:40:49

我猜这里试一试:

代码语言:javascript
复制
strQuery = "Select Count(IIF(ReviewDate is null,0,ReviewDate)) as UnassignedCount FROM [PatComDB$] Where  ReviewDate = 0"

由于上面的操作无效,所以我在access数据库中使用了这个方法,因为有时数据不是空的,而是空的。

代码语言:javascript
复制
 strQuery = "Select Count(ReviewDate) as UnassignedCount FROM [PatComDB$] 
 Where ReviewDate is Null Or " & Char(34) & Char(34)

不确定它是否适用于excel查询。值得一试

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32614553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档