드로우홀릭 더베이직

크로스탭에서 변수 불러오기

2019.06.19 00:24:09 조회 수 3763 추천 수 0

안녕하세요.


일반 쿼리에서는 SetTempVar로 변환한 값을 불러올 수 있으나, 크로스탭 쿼리에서는 어떻게 하는지 몰라 질문 드립니다.


간단한 예를 만들어 첨부하오니 답변해주시면 감사하겠습니다.


안녕히 계세요.


profile

돌직구

2019.06.19 23:52:34
*.165.242.137

크로스탭 쿼리에서는 임시 변수 뿐만 아니라, 매개변수도 제대로 동작하지 않습니다.

쿼리 디자인 보기에서 쿼리 도구 - 디자인 - 표시/숨기기 - 매개 변수 를 클릭하면 매개 변수를 정의하는 창이 표시됩니다.

여기에서 매개 변수를 정의하면 잘 동작할 것입니다.

Michael

2019.06.20 03:10:23
*.52.132.65

어떻게 매개변수를 정의하라시는건지 이해를 못하겠네요.


초보라서 죄송합니다.

Michael

2019.06.20 20:37:27
*.52.132.65

매개변수('부서')를 'Text'로 정의해도 아래의 에러 메시지는 계속 나오는데요.


The Microsoft Access Database Engine does not recognize '[Tempvars]![부서]' as a Valid Field Name or Expression 

Michael

2019.06.20 20:50:03
*.52.132.65

'[TempVars]![부서]'를 'Text'로 정의하니까 되네요.

감사합니다.

profile

돌직구

2019.06.20 22:44:37
*.165.242.137

스스로 해결책을 찾으셨네요.

이번 주는 제가 출장중이라 빨리 대응해 드리지 못했습니다.


어쨌든 해결되었으니 참 다행입니다.

Michael

2019.06.22 03:19:11
*.52.132.65

추가 질문이 있습니다.

위에서 작성한 크로스탭 쿼리를 어떻게 폼으로 가져올 수는 있는지요?


물론 로그온 한 부서의 내용이 상당에 나오고, 하단에 크로스탭쿼리로 작성한 내용이 나왔으면 하는데요.


감사합니다.


Michael

2019.06.22 04:22:53
*.52.132.65

해결했습니다.

쿼리의 property의 ColumnHeading에서 값을 지정해주면 되네요.


감사합니다.

profile

돌직구

2019.06.24 11:24:42
*.165.242.137

네.


추가로 크로스탭 쿼리의 가장 큰 약점인데..

열 제목이 고정되어 있지 않은 경우.. 폼을 만들기가 아주 까다롭습니다.

폼의 컨트롤 역시 동적으로 변화해야 하거든요.


가능하다면 열 제목을 고정된 값(예를 들면 년/월 같은)으로 하는 것이 여러 모로 편리합니다.

Michael

2019.06.25 05:19:57
*.52.132.65

말씀하신데로 열제목을 월/연 형식으로넣고 여러 연도를 넣다보니,  배열에 문제가 문제가 생겼습니다.

예를 들어

Jan/2017

Jan/2018

Jan/2019

Fev/2017

Fev/2018

Fev/2019

....


어떻게 해결해야 하는지요

profile

돌직구

2019.06.25 17:13:46
*.165.242.137

이렇게 되면, 열 제목이 그때 그때 달라지게 됩니다.

(이런 것을 '동적으로 변화'한다고 표현합니다.)


따라서, 다음 두 가지 작업을 하셔야 합니다.

1. 쿼리의 ColumnHeading 속성을 그때 그때 알맞게 변경해 줘야 합니다.

2. 폼을 사용한다면, 폼의 컨트롤의 '컨트롤 원본' 속성을, 그때 그때 알맞게 변경해 줘야 합니다.


이 두 가지 작업을 하는 방법을 간략히 설명드릴 수는 있겠습니다만..

이정도 설명으로 구현 가능하실지 모르겠네요.


일단 설명 드려 보겠습니다.


1. 쿼리의 ColumnHeading 속성 변경하기

크로스탭 쿼리를 SQL 보기로 전환해 보면 다음과 비슷합니다.

TRANSFORM Sum(q주문서_내역.금액) AS 금액의합계
SELECT 고객업체.고객업체코드, 고객업체.고객업체명
FROM 고객업체 INNER JOIN (주문서 INNER JOIN q주문서_내역 ON 주문서.주문서번호 = q주문서_내역.주문서번호) ON 고객업체.고객업체코드 = 주문서.고객코드
GROUP BY 고객업체.고객업체코드, 고객업체.고객업체명
PIVOT Format([수주일],"yyyy/mm") In ("2019-01","2019-02")

맨 마지막에 보면 'In ("2019-01","2019-02")' 이라는 부분이 있지요? 이것을 그때 그때 만들어 줘야 합니다.

예를 들어, 2019년 1월부터 3월까지 봐야 한다면, 다음과 같이 만들어 줘야겠지요.

In ("2019-01","2019-02", "2019-03")


그리고, 이렇게 만든 SQL 구문을 쿼리에 적용시켜 줘야 합니다.

CurrentDB("QueryName").SQL = strSQL



2. 폼 컨트롤의 컨트롤 원본 속성 제어하기

일단, 데이터시트 폼을 만듭니다. 폼에 있는 모든 컨트롤의 '컨트롤 원본' 속성은 비워둡니다.

컨트롤 이름을 'txt01', 'txt02' 처럼, 숫자를 이용해서 규칙성 있게 만듭니다.

그리고, 해당 폼의 Open 이벤트 프로시저에 코드를 다음과 유사하게 입력합니다.

txt01.ControlSource="2019-01"
txt02.ControlSource="2019-02"
txt03.ControlSource="2019-03"
...


이상입니다. 아마, 이 정도 설명만 듣고 구현하기가 쉽지 않으실 겁니다.

일단 시도해 보시고, 잘 모르는 것은 '새 글'로 질문 올려 주세요.

댓글로 계속 질문하는 것 보다는, 그 편이 더 나을겁니다.


그리고, 이 정도 Q&A는, 튜터링이 훨씬 낫습니다.

10~30분 정도면 충분한 설명이 되리라 생각합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31037
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 27362
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 22909
356 엑셀 업로드 폼 만들기 오류발생 문제해결 조언 부탁드립니다 file 1 엑세스00 2019-11-20 627
355 액세스 무따 2016에서 링크된 페이지가 없어졌나봐요 ㅜ 대하 2019-11-13 840
354 엑세스2013 무조건따라하기 내용중 질문이 있습니다. file 1 매일야근 2019-10-05 20093
353 액세스 DB 파일 용량 문제 문의 드립니다. 4 바남풍 2019-08-26 24207
352 TFaccess 설치중 마지막 단계에서 진행을 못하고 있습니다. file 1 대하 2019-08-09 2065
351 무따2010 p.229 비고 필드 file 3 클로이 2019-07-11 2676
350 액세스 동강 재수강 혜택(?) 1 클로이 2019-07-09 3065
349 동일한 테이블로 만든 두 개의 폼 file 2 클로이 2019-07-09 2653
348 각각의 앱에 리본 메뉴를 만들어 배포하는 경우 1 클로이 2019-07-09 2572
347 통화 필드에 단위($ 또는 \)표시가 저장 안 되게 할 수 있을까요? 3 클로이 2019-07-04 25085
346 크로스탭 쿼리를 이용한 조회폼 만들기 file Michael 2019-06-27 4916
345 튜터링 무료이용권 2 클로이 2019-06-25 3110
344 쿼리문 : select절의 일부가 working안됩니다. 2 prince12 2019-06-24 3063
343 시간 입력 및 계산에 대한 질문입니다. 6 클로이 2019-06-20 3518
» 크로스탭에서 변수 불러오기 file 10 Michael 2019-06-19 3763
341 웹앱을 조회용으로만 활용하고 싶은 경우에... 1 클로이 2019-06-09 2861
340 ADP 지원이 2013부터 안된다고 하셨는데요.. 1 클로이 2019-06-09 2880
339 Access 2013으로 매크로함수를 이용하여 앱을 개발할 경우... 1 클로이 2019-06-08 3939
338 액세스2013 무작정따라하기에서 궁금한 게 있습니다 1 deneb 2019-06-05 2670
337 데스크탑DB를 만든 후에 웹앱으로 컨버전이 되는지요? 1 클로이 2019-06-05 2686


  주소  12925 경기도 하남시 미사대로 540, B동 917호 (현대지식산업센터 한강미사2차) ㈜팀데이터이십일  |  고객센터 전화번호  02-467-2998  |  대표이사  염기웅
개인정보관리책임자  염기웅 (ml_privacy@td21.com)  |  사업자등록번호  120-86-79260  |  통신판매업신고번호  제 2021-경기하남-1166 호  [사업자 정보 확인]
  TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.