드로우홀릭 더베이직

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

2019.06.19 00:24:09 조회 수 404 추천 수 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 9560
공지 좋은 답변을 이끌어 내는 방법 돌직구 2017-07-14 9280
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 11971
354 무따2010 p.229 비고 필드 file 3 클로이 2019-07-11 30
353 액세스 동강 재수강 혜택(?) 1 클로이 2019-07-09 25
352 동일한 테이블로 만든 두 개의 폼 file 2 클로이 2019-07-09 21
351 각각의 앱에 리본 메뉴를 만들어 배포하는 경우 1 클로이 2019-07-09 24
350 통화 필드에 단위($ 또는 \)표시가 저장 안 되게 할 수 있을까요? 3 클로이 2019-07-04 156
349 크로스탭 쿼리를 이용한 조회폼 만들기 file Michael 2019-06-27 310
348 튜터링 무료이용권 2 클로이 2019-06-25 334
347 쿼리문 : select절의 일부가 working안됩니다. 2 prince12 2019-06-24 339
346 시간 입력 및 계산에 대한 질문입니다. 6 클로이 2019-06-20 380
» 크로스탭에서 변수 불러오기 file 10 Michael 2019-06-19 404
344 웹앱을 조회용으로만 활용하고 싶은 경우에... 1 클로이 2019-06-09 430
343 ADP 지원이 2013부터 안된다고 하셨는데요.. 1 클로이 2019-06-09 442
342 Access 2013으로 매크로함수를 이용하여 앱을 개발할 경우... 1 클로이 2019-06-08 437
341 액세스2013 무작정따라하기에서 궁금한 게 있습니다 1 deneb 2019-06-05 442
340 데스크탑DB를 만든 후에 웹앱으로 컨버전이 되는지요? 1 클로이 2019-06-05 467
339 안녕하세요 union 쿼리 사용시 질문이 있습니다ㅜㅜ file 2 망고 2019-06-04 432
338 조회폼에서 자꾸 멈춥니다. 2 Michael 2019-05-31 471
337 실무 액세스 3 재수강 문의 1 ltsky79 2019-05-22 494
336 setfilter 식이 정확히 입력되지 않았거나 너무 복잡해서 계산할 수 없습니다 4 망고 2019-05-16 502
335 조회 및 등록폼에 대한 질문있습니다. file 2 feroz 2019-05-13 500


  주소  05854 서울시 송파구 법원로 128 문정 SK V1 C동 1314호 ㈜팀데이터이십일  |  고객센터 전화번호  02-467-2998  |  대표이사  염기웅
개인정보관리책임자  염기웅 (ml_privacy@td21.com)  |  사업자등록번호  120-86-79260  |  통신판매업신고번호  제 2018-서울송파-1565 호
  TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.