드로우홀릭 더베이직

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

2019.06.19 00:24:09 조회 수 3997 추천 수 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
번호 제목 글쓴이 날짜 조회 수sort
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31907
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 28042
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 23126
520 특정 테이블의 필드 값을 다른 테이블로 옮기는 작업 1 1 thedream77 2014-12-18 45721
519 하나의 폼에서 데이터 입력 및 조회 구현 file 1 park 2018-08-22 45524
518 한 필드에서 여러개의 같은 데이터중 한개의 데이터만 가져오는 방법 2 백두산 2020-06-05 43014
517 추가쿼리에서 키위반 오류 문의드립니다 file 3 1 박형근 2022-07-17 36277
516 엑세스로 재고관리대장을 만들계획입니다. 2 1 똥구녕멍멍 2019-04-18 32570
515 외부데이터 "가져오기 오류 - 형식변환실패"의 의미는~? file 1 1 방랑김사깟 2017-02-19 32152
514 액셀의 데이타(하이퍼링크)를 복사해서 기존의 액세스 테이블에 붙이기 file 3 1 광야에서살아남기 2015-08-21 31240
513 이벤트 에러 file 4 1 엑세스29 2017-06-15 29592
512 엑세스 데이터베이스 일관성 에러 문의 1 박상순 2021-02-22 28606
511 목록상자 클릭시 클릭한 COL, ROW의 값 vb로 받아오기 2 쐬주도사 2017-12-15 28195
510 메시지박스의 체크박스로 테이블의 체크박스 컨트롤하기 1 공잇 2016-04-07 27938
509 엑셀파일 불러오기 오류 문의 file 3 기영주 2016-02-16 27641
508 vba에서 날짜 포멧 변환 질문드립니다. 1 1 쐬주도사 2017-12-18 27183
507 액세스 데이터베이스 딜레이 및 멈춤 문제 file 1 3 전맥 2016-10-11 26667
506 리스트박스의 선택된값을 해제 하려면 어떻게해야하나요, 1 김은교 2016-01-16 26027
505 통화 필드에 단위($ 또는 \)표시가 저장 안 되게 할 수 있을까요? 3 클로이 2019-07-04 26011
504 입력식에 유호하지 않는 날짜값이 있습니다. 2 sky3300 2019-03-26 25132
503 액세스 DB 파일 용량 문제 문의 드립니다. 4 바남풍 2019-08-26 24951
502 사진이나 그림 삽입 방법 1 notebook01 2016-05-01 24948
501 텍스트 가져오는 데 문제가 생겨요. 1 당연히나지 2021-01-24 24373


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