Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
Sql 相关vba excel的使用_Sql_Excel_Vba - Fatal编程技术网

Sql 相关vba excel的使用

Sql 相关vba excel的使用,sql,excel,vba,Sql,Excel,Vba,我在使用sql语句上的concatrelated函数时遇到问题。我想获得以下资料: 我的数据是: A.CABNRO E01.EXCCEX 90001 500 87000 400 90001 450 90001 300 87000 500 76005 我想获得: A.CABNRO NEW FIELD 90001 500,450,300 87000 400,500 76005 当我包含与concatrelated相关的语句时,以下代码不会运行。如果有人能帮助我,我将不胜感激 MYSQL = "S

我在使用sql语句上的concatrelated函数时遇到问题。我想获得以下资料:

我的数据是:

A.CABNRO E01.EXCCEX
90001 500
87000 400
90001 450
90001 300
87000 500
76005
我想获得:

A.CABNRO NEW FIELD
90001 500,450,300
87000 400,500
76005
当我包含与concatrelated相关的语句时,以下代码不会运行。如果有人能帮助我,我将不胜感激

MYSQL = "SELECT A.CABFPR, A.CABCIA, A.CABCTR, B.CTRDTR, A.CABLOE, "
MYSQL = MYSQL & "A.CABNRO, A.CABCAR, A.CABFED, A.CABHOD, A.CABFEI, "
MYSQL = MYSQL & "A.CABHOI, A.CABFEF, A.CABHOF, A.CABFEE, A.CABHOE, "
MYSQL = MYSQL & "A.CABCCL, A.CABNEM, A.CABDEM "
MYSQL = MYSQL & "CONCATRELATED(EXCCEX, E01, A.CABNRO=E01.EXCNRO) "
MYSQL = MYSQL & "FROM BDYOBEL.AIPDTA.AIPCAB A "
MYSQL = MYSQL & "LEFT OUTER JOIN BDYOBEL.AIPDTA.AIPCTR B ON A.CABCIA=B.CTRCIA AND A.CABCTR=B.CTRCTR "
MYSQL = MYSQL & "LEFT OUTER JOIN BDYOBEL.AIPDTA.AIPEXC E01 ON A.CABNRO=E01.EXCNRO "
MYSQL = MYSQL & "WHERE A.CABCIA='LOR' AND A.CABFED>="
MYSQL = MYSQL & Chr$(39) & fini & Chr$(39) & "AND A.CABFED<=" & Chr$(39) & ffin & Chr$(39)
MYSQL = MYSQL & " AND (A.CABCTR='DM' OR A.CABCTR='L1' OR A.CABCTR='L5' OR A.CABCTR='LR') AND A.CABCAR<>'0'"
声明

如果ConcatRelated函数返回的字符超过255个,并且 您在查询中使用它作为另一个记录集的源,这是 Access可能会返回剩余字符的垃圾

这可能解释了为什么您的代码不起作用。 在Access中无法为非固定数量的列聚合数据。你能做的最好的事情就是写这样的东西,并将这些列与文本编辑器结合起来

TRANSFORM Sum(E01.EXCCEX) AS SumOfEXCCEX
SELECT A.CABNRO
FROM [BDYOBEL-AIPDTA-AIPCAB] AS A INNER JOIN [BDYOBEL-AIPDTA-AIPEXC] AS E01 ON 
  A.CABNRO = E01.EXCNRO
GROUP BY A.CABNRO
ORDER BY A.CABNRO DESC , E01.EXCCEX DESC 
PIVOT E01.EXCCEX;  
运行查询将为示例数据提供以下结果:

如果ConcatRelated函数返回的字符超过255个,并且 您在查询中使用它作为另一个记录集的源,这是 Access可能会返回剩余字符的垃圾

这可能解释了为什么您的代码不起作用。 在Access中无法为非固定数量的列聚合数据。你能做的最好的事情就是写这样的东西,并将这些列与文本编辑器结合起来

TRANSFORM Sum(E01.EXCCEX) AS SumOfEXCCEX
SELECT A.CABNRO
FROM [BDYOBEL-AIPDTA-AIPCAB] AS A INNER JOIN [BDYOBEL-AIPDTA-AIPEXC] AS E01 ON 
  A.CABNRO = E01.EXCNRO
GROUP BY A.CABNRO
ORDER BY A.CABNRO DESC , E01.EXCCEX DESC 
PIVOT E01.EXCCEX;  
运行查询将为示例数据提供以下结果:
.

您选择的内容远远超出了样本数据的含义。您选择的内容远远超出了样本数据的含义。