2011-12-05 2 views
2

보고서를 작성하고 실행할 때 MS Access에서 열린 데이터베이스 개체를 처리하는 방법을 파악하려고합니다.MS Access는 개체를 열어 두지 않습니까?

각 보고서에는 수십 개의 쿼리가 있으며 데이터베이스가 정규화되었으므로 각 쿼리는 다양한 테이블을보고 있습니다. 그러나 나는 항상 많은 데이터베이스 개체를 열어 두었다가 Access에서 더 이상 쿼리를 보고서에 포함시키지 못하는 것 같습니다. 보고서가 생성되는 방법에 대한 내 아이디어는 아마 순진하지만 Access에서는 쿼리를 실행하고 보고서에 데이터를 배치하고 쿼리와 모든 관련 개체를 닫고 반복 할 것이라고 가정했습니다. 그러나 이것이 사실 인 것처럼 보이지는 않습니다.

보고서를 빠르게 작성하려고하기 때문에 걱정하는 유일한 이유가 있습니다. 나는 어딘가에 테이블을 만들어 쿼리를 쉽게 만들 수는 없지만 보고서를 실행하려고 할 때마다 7 ~ 8 분의 시간이 소요되는 것을 피하기 위해 테이블을 다시 작성했습니다. 쿼리는 데이터를 생성 할 때 더 적은 오브젝트를 사용할 수 있습니다. 테이블은 여전히 ​​범위로 정규화되어 있지만 테이블의 계산을 기술적으로 저장하는 유일한 단점이 있다고 생각합니다. 예를 들어, 고객 기반의 현재 나이를보고해야하며 간단한 switch 문 (생일을 보유하는 별도의 테이블을 쿼리해야 함)으로 그룹화하는 대신 연령대를 지정해야합니다 (18-22 , 23-27, etc.)를 테이블에 직접 입력하십시오.

어쨌든 데이터베이스 개체를 액세스가 어떻게 닫는지를 누군가가 나에게 밝힐 수 있다면 내 보고서가 왜 그렇게 느린지를 정확히 지적 할 수 있습니다.

감사합니다 당신이 정말로 (올바른) 정규화 된 테이블을 가지고 있고 테이블이 감소 정말 불가능하고, 당신이 정말로, 사용자가 설정하는 임시 테이블을 만들어야합니다 주 보고서에서 모든 하위 보고서를 추가 할 필요가 있다고 가정하면

+1

Access에서 더 이상 쿼리를 보고서에 포함시키지 못한다고 말하면 보고서 자체의 RecordSource를 언급하고 있습니까? 주어진 리포트에 평균 몇 개의 쿼리를 바인딩합니까? –

+0

Google "JETSHOWPLAN" Jet/ACE가 생성하는 유사 쿼리 계획을 보면 물건을 신비화하는 데 도움이 될 수 있습니다. 인덱싱해야 할 필드를 식별 할 때 특히 유용합니다. – mwolfe02

+0

레코드 원본 자체가 아니라 하위 보고서를 통해. 하위 보고서는 약 80 개의 쿼리 (하위 쿼리를 계산할 경우 약 110 개)를 사용합니다. – jerry

답변

0

보고서의 데이터 소스로 약간 지루하지만 쿼리가 실행되는 단계를 만들고 하나 이상의 임시 테이블을 생성 할 수 있습니다. 이러한 테이블을 보고서에 원하는 필터링 된 데이터로 만들면 이전보다 훨씬 빠르게 보고서를 열어야합니다. 보고서의 전시/인쇄 후에 버퍼와 같은 특정 데이터가 필요할 때까지 임시 테이블을 삭제하거나 유지해야합니다.

그렇지 않으면 가능한 경우 DB의 엔시 르 디자인을 고려하는 것이 좋습니다.

관련 문제