Excel SQL 查询 - (somefield) 为空的位置 - 无法正常工作
Excel SQL Query - Where (somefield) is null - not working correctly
Excel SQL 查询 where 子句有点麻烦。
excel 中我的 sheet 中的数据(据我所知)是空的,单元格中没有值和格式等。
我正在尝试 运行 来自 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) "
(其中 returns 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
我的 sheet 看起来像这样
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
有没有人知道我可能哪里出错了,可能是我的查询还是我 sheet 中的数据?
注意:不幸的是,我在软件方面仅限于 Outlook 和 Excel。
提前致谢。
编辑:
忘记提及 运行在同一数据集上执行以下查询 returns NULL
strQuery = "Select * FROM [PatComDB$] Where Index = 1"
rsARR = rs.GetRows
Debug.Print (rsARR(6, 0))
我只是猜测试试这个:
strQuery = "Select Count(IIF(ReviewDate is null,0,ReviewDate)) as UnassignedCount FROM [PatComDB$] Where ReviewDate = 0"
由于上面的方法不起作用,所以我在访问数据库中使用了这个,因为有时数据不为空,而是空白。
strQuery = "Select Count(ReviewDate) as UnassignedCount FROM [PatComDB$]
Where ReviewDate is Null Or " & Char(34) & Char(34)
不确定它是否适用于 excel 查询。值得一试
在多次尝试代码变体后,我自己找到了答案。
我必须将计数列更改为包含数据的列才能正常工作(在这种情况下,我使用了永远不会为空的索引字段)使用的代码如下。
strQuery = "Select Count(Index) as UnassignedCount FROM [PatComDB$]
Where ReviewDate = Null OR ReviewDate = 0 OR ReviewDate is null"
我使用了此处答案中的一些建议以及我的研究中的其他答案,以确保我捕获了空单元格的所有可能性(我认为)。
Excel SQL 查询 where 子句有点麻烦。
excel 中我的 sheet 中的数据(据我所知)是空的,单元格中没有值和格式等。 我正在尝试 运行 来自 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) "
(其中 returns 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
我的 sheet 看起来像这样
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
有没有人知道我可能哪里出错了,可能是我的查询还是我 sheet 中的数据?
注意:不幸的是,我在软件方面仅限于 Outlook 和 Excel。
提前致谢。
编辑:
忘记提及 运行在同一数据集上执行以下查询 returns NULL
strQuery = "Select * FROM [PatComDB$] Where Index = 1"
rsARR = rs.GetRows
Debug.Print (rsARR(6, 0))
我只是猜测试试这个:
strQuery = "Select Count(IIF(ReviewDate is null,0,ReviewDate)) as UnassignedCount FROM [PatComDB$] Where ReviewDate = 0"
由于上面的方法不起作用,所以我在访问数据库中使用了这个,因为有时数据不为空,而是空白。
strQuery = "Select Count(ReviewDate) as UnassignedCount FROM [PatComDB$]
Where ReviewDate is Null Or " & Char(34) & Char(34)
不确定它是否适用于 excel 查询。值得一试
在多次尝试代码变体后,我自己找到了答案。
我必须将计数列更改为包含数据的列才能正常工作(在这种情况下,我使用了永远不会为空的索引字段)使用的代码如下。
strQuery = "Select Count(Index) as UnassignedCount FROM [PatComDB$]
Where ReviewDate = Null OR ReviewDate = 0 OR ReviewDate is null"
我使用了此处答案中的一些建议以及我的研究中的其他答案,以确保我捕获了空单元格的所有可能性(我认为)。