Excel SQL查询where子句有点问题。
excel中的工作表中的数据(据我所见)是空的,单元格中没有值和格式等。我正在尝试从Outlook运行以下查询(在VBA中)。
strQuery = "Select Count(ReviewDate) as UnassignedCount FROM [PatComDB$]
Where ReviewDate is null "但是查询返回0。
我已经寻找了一些解决方案,并尝试了以下几点。
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))发布于 2015-09-17 13:48:42
经过几次代码变体的尝试之后,我自己找到了答案。
我必须将count列更改为包含数据的列,这样它才能正常工作(在本例中,我使用了Index字段,它永远不会是空的)代码如下所示。
strQuery = "Select Count(Index) as UnassignedCount FROM [PatComDB$]
Where ReviewDate = Null OR ReviewDate = 0 OR ReviewDate is null"我在这里使用了一些来自答案的建议,以及我的研究中的其他答案,以确保我捕捉到一个空单元的每一个可能发生的情况(我认为)。
发布于 2015-09-16 18:40:49
我猜这里试一试:
strQuery = "Select Count(IIF(ReviewDate is null,0,ReviewDate)) as UnassignedCount FROM [PatComDB$] Where ReviewDate = 0"由于上面的操作无效,所以我在access数据库中使用了这个方法,因为有时数据不是空的,而是空的。
strQuery = "Select Count(ReviewDate) as UnassignedCount FROM [PatComDB$]
Where ReviewDate is Null Or " & Char(34) & Char(34)不确定它是否适用于excel查询。值得一试
https://stackoverflow.com/questions/32614553
复制相似问题