2015-01-05 3 views
0

VBA에서 다음 코드를 사용하여 개수 통계를 하나의 레코드로 테이블에 삽입하려고합니다. 그러나 어떤 이유에서, 실행하려고 할 때 쿼리 값의 수와 대상 필드가 같지 않으며 이것이 왜 발생하는지 혼란 스럽습니다. 어떤 도움이라도 대단히 감사하겠습니다.Access VBA에서 계산

strCount = "INSERT INTO MarketSegmentTotals([State Medicaid], [Commercial], [HIX], [MMP], [CMS Part D (CY " & intYear & ")], [CMS Part D (CY " & (intYear + 1) & ")]) " & _ 
"SELECT A.cnt, B.cnt, C.cnt, D.cnt, E.cnt, F.cnt" & _ 
"FROM (" & _ 
    "SELECT COUNT([FORMULARY ID]) as cnt " & _ 
    "FROM ImportMetricsIDs " & _ 
    "WHERE [Market Segment]= 'State Medicaid' " & _ 
") AS A " & _ 
", (" & _ 
    "SELECT COUNT([FORMULARY ID]) as cnt " & _ 
    "FROM ImportMetricsIDs " & _ 
    "WHERE [Market Segment]= 'Commercial' " & _ 
") as B " & _ 
", (" & _ 
    "SELECT COUNT([FORMULARY ID]) as cnt " & _ 
    "FROM ImportMetricsIDs " & _ 
    "WHERE [Market Segment]= 'HIX' " & _ 
") AS C " & _ 
", (" & _ 
    "SELECT COUNT([FORMULARY ID]) as cnt " & _ 
    "FROM ImportMetricsIDs " & _ 
    "WHERE [Market Segment]= 'MMP' " & _ 
") AS D " 

strCount2 = strCount & _ 
", (" & _ 
    "SELECT COUNT([FORMULARY ID]) as cnt " & _ 
    "FROM ImportMetricsIDs " & _ 
    "WHERE [Market Segment]= 'CMS Part D (CY ' & (intYear) & ')' " & _ 
") AS E " & _ 
", (" & _ 
    "SELECT COUNT([FORMULARY ID]) as cnt " & _ 
    "FROM ImportMetricsIDs " & _ 
    "WHERE [Market Segment]= 'CMS Part D (CY ' & (intYear + 1) & ')' " & _ 
") AS F " 


db.Execute strCreate 
db.Execute strCount2 
+0

strCount2 정의 앞에 아포스트로피가 있습니까? – KevenDenen

+0

아니요, 죄송합니다. 질문에 오타가있었습니다. – Pablo

답변

1

는 쿼리에 공백이 누락 된 것 같습니다 :

"SELECT A.cnt, B.cnt, C.cnt, D.cnt, E.cnt, F.cnt" & _ 
"FROM (" & _ 

이어야를 하나

"SELECT A.cnt, B.cnt, C.cnt, D.cnt, E.cnt, F.cnt " & _ 
"FROM (" & _ 

또는

"SELECT A.cnt, B.cnt, C.cnt, D.cnt, E.cnt, F.cnt" & _ 
" FROM (" & _ 

내가 가진 첫 번째를 선호 첫 번째 줄 끝의 공백 select와 from의 라인 업.

+0

감사합니다. 나는 그것을 고치지 만, 이제는 매개 변수가 너무 적어서 예상 한 것입니다. – Pablo

+0

어떤 라인에서 에러가 발생합니까? – KevenDenen

+0

그것은 from 절에 있다고합니다. – Pablo

관련 문제