Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象“U记录集”的方法“打开”在SQL中失败_Sql_Vba_Ms Access - Fatal编程技术网

对象“U记录集”的方法“打开”在SQL中失败

对象“U记录集”的方法“打开”在SQL中失败,sql,vba,ms-access,Sql,Vba,Ms Access,我希望创建一个SQL查询,该查询将返回以“传出呼叫”开头的案例管理器、活动总数和描述计数 此时,我运行此程序并收到一条错误消息,表示对象“U记录集”的方法“打开”失败。我确信这是因为“传出呼叫”,因为当我删除它时,它工作正常 有人知道为什么会失败,或者知道以传出呼叫开始的描述数量的其他方法吗?请记住,Case方法在VBA上不起作用 SELECT m.CaseManager, SUM(m.Lead) AS 'Total Leads', COUNT(a.Description) AS 'Tota

我希望创建一个SQL查询,该查询将返回以“传出呼叫”开头的案例管理器、活动总数和描述计数

此时,我运行此程序并收到一条错误消息,表示对象“U记录集”的方法“打开”失败。我确信这是因为“传出呼叫”,因为当我删除它时,它工作正常

有人知道为什么会失败,或者知道以传出呼叫开始的描述数量的其他方法吗?请记住,Case方法在VBA上不起作用

SELECT m.CaseManager, 
SUM(m.Lead) AS 'Total Leads', 
COUNT(a.Description) AS 'Total Activity', 
COUNT(IF a.Description LIKE 'Outgoing Calls%' THEN 1 ENDIF) AS 'Outbound Calls' 
FROM AccountTable m INNER JOIN ActivityTable a 
ON m.AccountNumber=a.AccountNumber 
GROUP BY m.CaseManager;
1如果是IIF,则声明无效,如果 2 IIF语句需要一个ELSE分支

目前无法测试它,但语句应该如下所示

SUM(IIF(a.Description LIKE 'Outgoing Calls*', 1, 0)) AS 'Outbound Calls' 
1如果是IIF,则声明无效,如果 2 IIF语句需要一个ELSE分支

目前无法测试它,但语句应该如下所示

SUM(IIF(a.Description LIKE 'Outgoing Calls*', 1, 0)) AS 'Outbound Calls' 

谢谢-很遗憾,当我添加此项时,我看到了与上面相同的错误消息。@DannyO'Sullivan请尝试IIFa。说明如“Outgoing Calls%”,1,0。IIF是一个接受参数的函数,而不是一个语句。你混淆了IIF函数和SELECT CASE语句;当a.描述如“Outgoing Calls%”时,则1 ELSE 0 END也应起作用注意:我不知道Access-SQL。对不起,混淆了。更新了我的答案谢谢各位。奇怪的是,上面的查询返回的是活动的总数,而不仅仅是传出的呼叫。所以本质上IIF语句返回与COUNTa.Description相同的结果。我可以确认它不应该是相同的计数。你需要用总和而不是计数。COUNT统计查询的命中数。Access SQL中的通配符是*,而不是“%”。再次更新我的答案,希望它现在是正确的谢谢-很遗憾,当我添加此内容时,我看到了与上面相同的错误消息。@DannyO'Sullivan try IIFa.Description,如“Outgoing Calls%”,1,0。IIF是一个接受参数的函数,而不是一个语句。你混淆了IIF函数和SELECT CASE语句;当a.描述如“Outgoing Calls%”时,则1 ELSE 0 END也应起作用注意:我不知道Access-SQL。对不起,混淆了。更新了我的答案谢谢各位。奇怪的是,上面的查询返回的是活动的总数,而不仅仅是传出的呼叫。所以本质上IIF语句返回与COUNTa.Description相同的结果。我可以确认它不应该是相同的计数。你需要用总和而不是计数。COUNT统计查询的命中数。Access SQL中的通配符是*,而不是“%”。再次更新了我的答案,希望它现在是正确的尝试直接在Access中执行查询,而不是从VBA代码执行查询:您可能会得到一条更有意义的错误消息。由于SQL中的语法错误,无法打开记录集;SQL编辑器应该提供更好的线索来说明问题所在。请尝试直接在Access中执行查询,而不是从VBA代码执行查询:您可能会收到更有意义的错误消息。由于SQL中的语法错误,无法打开记录集;SQL编辑器应该提供关于它的错误的更好的线索。