내가 SQL 쿼리의 실행이 런타임 오류 3075.MS 액세스 VBA 런타임
마이크로 소프트 SQL 서버 관리자에서 동일한 쿼리 실행을 생성 VBA에 문제가 발생하고와 SQL 쿼리에 오류 3075 , 아무런 문제가 발생하지 않고 원하는 결과가 반환됩니다.
Debug.print (여기에 제안 된대로 : https://stackoverflow.com/a/3136299/4474367)와 함께 sql-query를 인쇄하여 쿼리가 어떻게 보이는지 확인했습니다. SQL Server Manager에 붙여 넣기가 정상적으로 작동합니다.
내가하고있는 일은 특정 딜러 (그리고 다른 기준)에 대한 총 행 수 (설문 조사 응답)를 선택하고 결과를 A2 = 5 인 하위 행의 총 행수로 나눈 것입니다) 그리고 나서 100을 곱해서 A2 = 5의 백분율을 얻으십시오.
여러분들은 틀렸다고 생각합니까? Access에서 내가 고려하지 않은 제한 사항이 있습니까? 오류 메시지에는 하위 쿼리 만 표시됩니다.
SELECT DealerCode,
(SELECT CAST(COUNT(A2) AS FLOAT)
FROM dbo_Service
WHERE A2 = 5
AND MarketCode = 'CA'
AND DealerCode = '3140'
AND CompleteDate BETWEEN '2014-01-20'
AND '2015-01-20')/COUNT(*) * 100 AS TopBox
FROM dbo_Service
WHERE DealerCode = '3140'
AND MarketCode = 'CA'
AND CompleteDate BETWEEN '2014-01-20' AND '2015-01-20'
GROUP BY DealerCode;
포경 버전 (상기와 동일,하지만 줄 바꿈없이) : 여기
내 쿼리입니다 (I 라인으로 조금을 잘라 읽기 쉽도록 나누기)SELECT DealerCode, (SELECT CAST(COUNT(A2) AS FLOAT) FROM dbo_Service WHERE A2 = 5 AND MarketCode = 'CA' AND DealerCode = '3140' AND CompleteDate BETWEEN '2014-01-20' AND '2015-01-20')/COUNT(*) * 100 AS TopBox FROM dbo_Service WHERE DealerCode = '3140' AND MarketCode = 'CA' AND CompleteDate BETWEEN '2014-01-20' AND '2015-01-20' GROUP BY DealerCode;
VBA 코드 조각, 질의 절차 : 여기
strSQL = "SELECT DealerCode, (SELECT CAST(COUNT(A2) AS FLOAT) FROM dbo_Service WHERE A2 = 5 AND MarketCode = 'CA' AND DealerCode = '3140' AND CompleteDate BETWEEN '2014-01-20' AND '2015-01-20')/COUNT(*) * 100 AS TopBox FROM dbo_Service WHERE DealerCode = '3140' AND MarketCode = 'CA' AND CompleteDate BETWEEN '2014-01-20' AND '2015-01-20' GROUP BY DealerCode;"
Debug.Print strSQL
Set rs = db.OpenRecordset(strSQL)
topBox = rs!topBox
db.Close
내가받을 오류의 이미지에 대한 링크 (이다 http://i.imgur.com/edGobkG.png
로 인해 이미지 게시가 허용되지 않았습니다. 감사합니다.
스택 오버플로에 오신 것을 환영합니다. 'CAST '는 Access SQL에서 지원되는 함수가 아닙니다. – HansUp
감사! 그게 훨씬 더 일찍 생각해야만했던 것 같아요, 덧붙일 면도날이 있다면, 지금 당장 그것을 사용할 것입니다! 빠른 응답을 보내 주셔서 다시 한번 감사드립니다. – RGiesler