2014-07-25 8 views
0

나는 액세스하고 내가 (/ 심지어 주제에 대한 여러 게시물) 알아낼 수없는 데이터베이스 보고서 문제가 상당히 새로운 오전 . 감사 응답은 숫자가 아닌 텍스트이며 감사 날짜는 언제든지 가능합니다. 감사 질문을 행 헤더, 가장 최근의 세 감사 날짜를 열 머리글로 나열하고 감사 응답을 데이터로 나열하는 보고서를 만들고 싶습니다.액세스 크로스 탭 보고서

사용자가 저장소를 선택할 수 있고 크로스 탭 쿼리를 제공하는 양식이 있습니다. 가장 최근의 세 날짜로 제한되지 않는다는 점을 제외하고는 작동합니다. 쿼리를 제공하는 테이블도 방문 번호를 나열하므로 최대한의 방문 번호로 무언가를 할 수 있다고 생각했지만 아무 소용이 없습니다.

하지만 주요 문제는 이제 모든 데이터를 생성하는 크로스 탭 보고서를 가져올 수 없습니다. 내가 시도한 그 날에 몇 가지 예제 코드를 발견했지만 각각은 행과 총계를 생성하려고합니다. 텍스트 데이터 필드이기 때문에 합계가 작동하지 않으며 적절하다고 생각되는 코드를 제거하려고 시도했지만 올바른 보고서를 생성하지 못합니다.

내가 시도한 두 번째 옵션은 크로스 탭 쿼리를 Excel로 내보내는 것이지만 거기에 붙어 있습니다.

도움이 될 것입니다. 고맙습니다!

답변

0

기술 수준에 따라 다소 어려울 수 있습니다. 내 접근 방식은 서브 쿼리의 무리지만, 그것은 꽤되지 않습니다. 귀하의 상점이 StoreID에 의해 고유하게 식별되고, 감사 날짜가 감사 날짜이며, 감사 결과가 단일 텍스트 필드 AuditResults에 있다고 가정 해 보겠습니다. 그것은 세부 사항을 파악하는 당신에게 달려 있습니다 만, 여기 대략적인 개요입니다 :

    :

    이 (감사 일 당 1)을 StoreID 당 1-3 행이 하나의 테이블에 모든 데이터를 얻기가
  1. StoreID별로 그룹화하고 max (AuditDate)를 반환하는 간단한 쿼리를 만듭니다. Qry1a으로 전화하십시오.
  2. Qry1a를 감사 테이블에 다시 결합하여 가장 최근 감사의 결과를 리턴하십시오. 1로 하드 코드 된 daterank 열을 포함하십시오. Qry1b으로 전화하십시오.
  3. 두 번째 및 세 번째 가장 최근 감사의 결과를 얻으려면 a 및 b를 두 번 더 반복하십시오 (이러한 결과를 제거하려면 Qry1 및 Qry2에 남겨 둘 수 있음). Qry2bQry3b으로 전화하십시오.
  4. 소스 테이블에 Qry1b, Qry2bQry3b과 같은 내부 조인을 사용하면 StoreID 당 최대 3 개의 행을 반환하는 쿼리를 작성하십시오. 당신이 LastAudit: max(iif(DateRank=1,AuditResults,""))
  5. 반복 다음 2를 얻기 위해 이전 단계 같은 것을 사용합니다 첫 번째 열의 경우

    1. :
    2. 이 새 테이블로

    ,을 StoreID하여 새 쿼리 및 그룹을 daterank를 각각 2와 3으로 변경하는 감사

이 접근법의 장점은 3 감사 미만의 저장소를 처리 할 수 ​​있다는 점입니다. 또는 storeID가 어디에서나 하드 코드되어 있지 않으므로 저장소 목록이 계속 변경되는 경우 유용합니다.