Applies ToMicrosoft 365용 Access Access 2024 Access 2021 Access 2019 Access 2016

오래된 레코드 또는 비활성 레코드를 주기적으로 보관하여 Microsoft Access 데이터베이스를 구성하고 관리할 수 있습니다. 데이터베이스, 특정 테이블 또는 특정 레코드(예: 특정 날짜보다 오래된 레코드)의 모든 테이블을 보관할 수 있습니다. 이 항목에서는 세 가지 다른 옵션을 사용하여 Access 데이터베이스에 데이터를 보관하는 방법을 설명합니다.

이 문서의 내용

보관을 언제 고려해야 하나요?

컴퓨터의 데이터베이스에 더 이상 사용하지 않으려는 데이터가 포함되어 있지만 특정 시점에 필요한 경우 또는 데이터 보존 정책을 충족하는 경우 해당 데이터를 편리하게 유지하려는 경우 보관은 이러한 데이터를 유지하는 좋은 방법입니다. 보관은 월말과 같은 날짜 조건에 따라 데이터를 유지하는 데도 자주 사용됩니다.

데이터를 보관하는 방법

다음 표에는 데이터를 보관하는 메서드, 메서드에 대한 설명, 각 메서드를 사용해야 하는 시기에 대한 설명 및 메서드에 대한 기타 특정 고려 사항이 나와 있습니다.

방법

설명

사용하는 경우...

기타 고려 사항

주기적으로 테이블 바꾸기

특정 테이블의 보관 복사본을 주기적으로 만들고 해당 테이블을 빈 새 테이블 복사본으로 대체합니다.

테이블의 모든 레코드는 보관 여부를 결정하는 데 사용하는 조건을 충족합니다.예: 일일 온도 극단을 저장하는 테이블이 있습니다. 매년 테이블을 보관하고 빈 테이블로 새로 시작합니다.

  • 참조 무결성을 해결해야 할 수 있습니다. 자세한 내용은 참조 무결성 해결 섹션을 참조하세요.

모든 테이블을 주기적으로 바꾸기

백 엔드 데이터베이스의 보관 복사본을 주기적으로 만들고 백 엔드 데이터베이스를 비어 있는 새 데이터베이스로 바꿉다. 분할 데이터베이스(모든 테이블을 포함하는 백 엔드 데이터베이스 파일 및 다른 모든 데이터베이스 개체가 포함된 프런트 엔드 데이터베이스 파일로 구성된 데이터베이스)가 필요합니다.

데이터베이스의 대부분의 테이블에 있는 모든 레코드는 보관 여부를 결정하는 데 사용하는 조건을 충족합니다.예: 데이터베이스는 다양한 종류의 기상 데이터가 있는 여러 테이블로 구성됩니다. 매년 모든 테이블을 보관합니다.

  • 조회 테이블(이러한 우편 번호 또는 부서와 같은 조회 값을 저장하는 데 사용하는 테이블)이 있는 경우 해당 데이터를 새 백 엔드 데이터베이스로 가져와야 할 수 있습니다.

  • 데이터베이스를 수동으로 보관해야 합니다. 이 메서드에는 매크로를 사용할 수 없습니다.

정기적으로 레코드를 보관 테이블로 이동

보관할 레코드를 선택하고 데이터를 보관 테이블에 추가하는 쿼리를 주기적으로 실행한 다음, 쿼리를 실행하여 원래 테이블에서 동일한 레코드를 선택하고 삭제합니다.

테이블의 일부 레코드는 보관 여부를 결정하는 데 사용하는 조건을 충족합니다.예: 체크 인 날짜가 1년 이상인 경우 라이브러리 트랜잭션(검사 아웃)을 보관하려고 합니다.

  • 특히 보관하려는 레코드가 일대다 관계 한쪽에 있는 경우 참조 무결성 해결해야 할 수 있습니다. 자세한 내용은 참조 무결성 해결 섹션을 참조하세요.

경고: 쿼리에서 매개 변수를 사용해야 하는 경우 매개 변수를 처리하는 양식을 만들어야 합니다. 그렇지 않으면 데이터 손실 위험이 있습니다.

참조 무결성 해결

보관하려는 레코드가 다른 테이블의 레코드와 관련된 경우 관계를 해결해야 할 수 있습니다. 보관하려는 레코드가 "자식" 레코드( 일대다 관계 "다" 쪽에 속함)인 경우 우려 없이 안전하게 보관할 수 있습니다. 보관하려는 레코드가 "부모" 레코드인 경우( 일대다 관계 "일" 쪽에 속함) 관련 "자식" 레코드를 보관할 때 다음을 수행할 수 있습니다.

  • "부모" 레코드를 삭제하지 못하도록 합니다. 보관 테이블에 "부모" 레코드를 이미 추가한 경우 문제가 발생할 수 있습니다.

    - 또는 -

  • "고아"가 됩니다. 존재하지 않는 "부모"에 속하는 레코드입니다. 이로 인해 "분리된" 레코드를 사용하는 데이터베이스의 데이터 무결성 및 기능에 문제가 발생할 수 있습니다.

참조 무결성을 고려하려면 다음 단계를 수행합니다.

  1. 보관하려는 레코드에 속하는 "자식" 레코드를 결정합니다. 예를 들어 라이브러리에서 빌려온 자산의 레코드를 보관하려면 먼저 해당 자산에 대해 열려 있는 트랜잭션이 있는지, 즉 자산이 체크 아웃되었지만 반환되지 않는지 여부를 결정합니다.

  2. 다음 중 하나를 수행합니다.

    • "자식" 레코드를 항상 안전하게 삭제할 수 있는 경우 관계가 연속 삭제와 함께 참조 무결성을 적용하는지 확인합니다. 이렇게 하면 관련된 모든 "자식" 레코드가 삭제됩니다.

    • "자식" 레코드를 항상 안전하게 삭제할 수 없는 경우 데이터베이스의 모든 테이블을 보관하는 것이 좋습니다.

    • "자식" 레코드가 없는 "부모" 레코드를 선택하는 쿼리를 Create. 그런 다음 첫 번째 쿼리를 사용하여 "부모" 테이블을 사용하는 대신 보관 쿼리를 만듭니다( 주기적으로 레코드를 보관 테이블로 이동 섹션 참조).

맨 위로 이동

주기적으로 테이블 바꾸기

테이블의 모든 데이터를 보관하려는 경우 테이블을 빈 복사본으로 주기적으로 바꿀 수 있습니다.

중요: 보관하는 테이블이 다른 테이블과 관련된 경우 참조 무결성을 해결해야 할 수 있습니다.

  1. 탐색 창에서 보관할 테이블을 선택하고 Ctrl+C를 누른 다음 Ctrl+V를 누릅니다.

  2. 다른 이름으로 테이블 붙여넣기 대화 상자의 붙여넣기 옵션에서 구조만을 선택한 다음 확인을 클릭합니다.Access에서는 복사본 이름을 원래 테이블 이름의 복사본으로 지정합니다.

  3. 탐색 창에서 원래 테이블을 마우스 오른쪽 단추로 클릭한 다음 바로 가기 메뉴에서 이름 바꾸기 를 클릭합니다."DailyTemperatureExtremes_archive_2019"과 같이 테이블에 포함된 이름을 나타내는 다른 이름을 지정합니다.

  4. 탐색 창에서 빈 복사본을 마우스 오른쪽 단추로 클릭한 다음 바로 가기 메뉴에서 이름 바꾸기 를 클릭합니다. 원래 테이블 이름으로 이름을 바꿉니다.

맨 위로 이동

모든 테이블을 주기적으로 바꾸기

분할 데이터베이스를 사용하는 경우 백 엔드 데이터베이스를 빈 복사본으로 바꿔서 모든 테이블을 주기적으로 바꿀 수 있습니다.

이렇게 하려면 먼저 빈 복사본을 준비합니다. 데이터베이스 디자인이 변경되지 않는 한 보관할 때마다 이 빈 복사본을 다시 사용할 수 있습니다. 보관하려면 기존 백 엔드 데이터베이스의 이름을 변경하여 보관 데이터베이스임을 나타내고 빈 복사본을 새 백 엔드 데이터베이스로 저장합니다.

백 엔드 데이터베이스의 빈 복사본 준비

먼저 백 엔드 데이터베이스의 모든 테이블에 대한 테이블 정의를 가져옵니다.

  1. 파일 탭에서 새로 만들기를 클릭하고 빈 데이터베이스를 선택한 다음 Create 클릭합니다.

  2. Table1을 닫습니다.

  3. 외부 데이터 탭의 가져오기 & 링크 그룹에서 액세스를 클릭합니다.

  4. 외부 데이터 가져오기 – 데이터베이스 액세스 대화 상자에서 테이블, 쿼리, 양식, 보고서, 매크로 및 모듈을 현재 데이터베이스로 가져오기를 선택한 다음 찾아보기를 클릭합니다.

  5. 파일 열기 대화 상자에서 백 엔드 데이터베이스를 선택합니다. 열기를 클릭하여 파일 열기 대화 상자를 닫은 다음 확인을 클릭합니다.

  6. 개체 가져오기 대화 상자에서 옵션을 클릭합니다.

  7. 테이블 가져오기에서 정의만을 선택합니다.

  8. 테이블 탭에서 모두 선택을 클릭하고 확인을 클릭한 다음 닫기를 클릭합니다.

빈 복사본의 조회 테이블에 데이터 추가 

각 조회 테이블에 대해 다음 단계를 수행합니다.

  1. 기존 백 엔드 데이터베이스의 조회 테이블에 연결합니다.

  2. 원본의 모든 레코드를 복사본에 추가하는 추가 쿼리를 Create.

백 엔드 데이터베이스를 빈 복사본으로 바꾸기

먼저 기존 백 엔드 데이터베이스의 이름을 변경하여 이제 보관 데이터베이스임을 나타냅니다. 그런 다음, 빈 복사본을 열고 원래 백 엔드 데이터베이스 이름을 사용하여 저장합니다.

  1. 파일 탭을 클릭한 다음 데이터베이스를 다른 이름으로 저장을 클릭합니다. 열려 있는 모든 개체를 닫라는 메시지가 표시될 수 있습니다. 그렇다면 확인을 클릭합니다. 다른 이름으로 저장 대화 상자가 열립니다.

  2. 다른 이름으로 저장 대화 상자의 맨 위에 있는 저장 상자에서 원래 백 엔드 데이터베이스와 동일한 위치에 파일을 저장하고 있는지 확인합니다.

  3. 파일 이름 상자에 원래 백 엔드 데이터베이스의 이름을 입력합니다.

  4. 다른 이름으로 저장 형식 상자에서 데이터베이스 액세스(*.accdb)를 선택합니다.

맨 위로 이동

정기적으로 레코드를 보관 테이블로 이동

보관하려는 레코드가 포함된 테이블의 빈 복사본을 만들고, 원본 테이블에서 보관 테이블로 레코드를 복사하는 추가 쿼리를 만들고, 원래 테이블에서 보관된 레코드를 제거하는 쿼리 삭제 만들고, 마지막으로 보관하려는 경우 실행할 수 있는 두 쿼리를 실행하는 매크로를 만들어야 하는 4단계 프로세스입니다. 이 겉보기에 복잡한 프로세스는 아래에 제시된 순서대로 단계를 따르는 경우 쉬울 수 있습니다.

1단계: 보관 테이블 Create

2단계: 추가 쿼리를 Create 데이터를 보관 테이블에 복사합니다.

3단계: 삭제 쿼리를 Create 원래 테이블에서 데이터를 제거합니다.

4단계: 쿼리 추가 및 삭제를 모두 실행하도록 매크로 Create

1단계: 보관 테이블 Create

보관된 모든 레코드를 한 테이블에 유지하려면 이 단계를 한 번 수행합니다. 이 단계에서 만든 보관 테이블에는 보관된 모든 레코드가 보관됩니다.

이 단계를 수행하는 대신 새 보관 테이블을 만들 때 이전 보관 테이블을 삭제하려면 테이블 만들기 쿼리 사용하여 데이터를 보관 테이블에 복사할 수 있습니다. 이렇게 하려면 2단계로 건너뜁니다.

보관할 때마다 새 보관 테이블을 사용하지만 이전 보관 테이블을 유지하려면 새 보관 테이블을 만들기 전에 이전 보관 테이블의 이름을 바꿉니다. 날짜를 기준으로 보관하는 경우 이전 보관 테이블의 이름을 나타내는 날짜 범위에 따라 지정하는 것이 좋습니다.

  1. 탐색 창에서 보관할 레코드가 있는 테이블을 선택하고 Ctrl+C를 누른 다음 Ctrl+V를 누릅니다.

  2. 테이블 이름 상자에서 복사라는 단어를 삭제하고 기존 테이블 이름에 밑줄과 "보관"이라는 단어를 추가한 다음 확인을 클릭합니다. 예를 들어 원래 테이블의 이름이 Transactions 이면 보관 테이블의 이름은 Transactions_archive.

    테이블 붙여넣기

  3. 다른 이름으로 테이블 붙여넣기 대화 상자의 붙여넣기 옵션에서 구조만을 선택합니다.

2단계: 추가 쿼리를 Create 데이터를 보관 테이블에 복사합니다.

  1. 만들기 탭의 쿼리 그룹에서 쿼리 디자인을 클릭합니다.

  2. 보관하려는 레코드를 사용하여 테이블을 추가합니다.

  3. 쿼리 디자인 창에서 방금 추가한 테이블에서 별표(*)를 두 번 클릭합니다. 테이블 이름과 별표는 쿼리 디자인 그리드의 첫 번째 열에 표시됩니다.

    참고: 별표는 쿼리 출력에 테이블의 모든 필드를 쿼리에 포함해야 했음을 나타냅니다. 별표를 사용하는 경우 테이블에서 필드를 추가하거나 제거하면 쿼리 출력이 적절하게 조정됩니다.

  4. 쿼리 디자인 창에서 레코드를 보관하기 전에 충족해야 하는 조건을 지정하는 데 사용할 필드를 두 번 클릭합니다. 예를 들어 Transactions 테이블에 체크 인 날짜라는 필드가 있고 해당 날짜가 1년이 넘은 모든 레코드를 보관하려는 경우 필드를 두 번 클릭하면 쿼리 디자인 표의 다음 빈 열에 표시됩니다.

    쿼리 디자인 눈금

    추가 필드와 함께 조건을 사용하려는 경우 이 단계를 반복합니다.

  5. 조건 행을 사용하여 방금 추가한 필드에 대한 조건을 지정합니다. 예를 들어 조건 행의 식을 사용하여 체크 인 날짜가 2019년 1월 1일 이전이어야 <#1/1/2019#을 지정할 수 있습니다.

    보관할 때마다 조건 값이 변경되면 쿼리에서 입력을 요청하도록 해야 합니다. 이렇게 하려면 쿼리에서 입력을 요청하도록 조건 행에 매개 변수를 사용합니다. 매개 변수를 사용하려면 평소처럼 식을 사용하지만 지정된 값 대신 대괄호로 둘러싸인 간단한 질문을 사용합니다. 예를 들어 다음과 같이 식<[전에 완료된 트랜잭션 보관:]을 사용할 수 있습니다.

    매개 변수 식

    매개 변수 사용에 대한 자세한 내용은 쿼리 소개 문서를 참조하세요.

    또는 행을 사용하여 대체 조건을 지정할 수도 있습니다. 조건 사용에 대한 자세한 내용은 쿼리 조건 예제 문서를 참조하세요.

    팁: 날짜 필드를 사용하여 조건을 지정하고 현재 날짜보다 오래된 모든 레코드를 보관하려는 경우 날짜 필드의 조건 행에 <Date()를 입력합니다.

  6. 다음 중 하나를 수행합니다.

    보관 테이블을 이미 만든 경우 추가 쿼리를 사용하여 지정된 레코드를 해당 테이블에 추가합니다.

    1. 디자인 탭의 쿼리 유형 그룹에서 추가를 클릭합니다.

    2. 추가 대화 상자의 테이블 이름 상자에서 보관 테이블의 이름을 선택한 다음 확인을 클릭합니다.

      추가

      쿼리 디자인 표에 추가할 행이 나타납니다.

    3. 조건을 지정 하는 데 사용한 모든 필드에 대한 추가 대상 행을 지웁니다. 별표에만 추가 대상에 대한 값이 있어야 합니다.

      쿼리 디자인 눈금 추가 행

      보관 테이블을 만들지 않은 경우 make-table 쿼리를 사용하여 지정된 레코드를 사용하여 보관 테이블을 만듭니다.

    4. 디자인 탭의 쿼리 유형 그룹에서 테이블 만들기를 클릭합니다.

    5. 테이블 만들기 대화 상자의 테이블 이름 상자에 보관 테이블의 이름을 입력한 다음 확인을 클릭합니다.

  7. Ctrl+S를 눌러 쿼리를 저장합니다.

3단계: 삭제 쿼리를 Create 원래 테이블에서 데이터를 제거합니다.

  1. 만들기 탭의 쿼리 그룹에서 쿼리 디자인을 클릭합니다.

  2. 보관하려는 레코드를 사용하여 테이블을 추가합니다.

  3. 쿼리 디자인 창에서 방금 추가한 테이블에서 별표(*)를 두 번 클릭합니다. 테이블 이름과 별표는 쿼리 디자인 그리드의 첫 번째 열에 표시됩니다.

  4. 쿼리 디자인 창에서 추가 쿼리에서 조건을 지정하는 데 사용한 것과 동일한 필드를 두 번 클릭합니다.

  5. 조건 행을 사용하여 방금 추가한 필드에 대한 조건을 지정합니다. 조건 사용에 대한 자세한 내용은 쿼리 조건 예제 문서를 참조하세요.

    중요: 추가 또는 테이블 만들기 쿼리가 매개 변수를 사용하는 경우 삭제 쿼리도 매개 변수를 사용하는지 확인합니다. 또한 두 쿼리에 대해 동일한 값을 입력합니다. 다른 매개 변수 값을 입력하면 데이터가 손실될 수 있습니다. 데이터 손실을 방지하려면 폼을 사용하여 값을 수집하고 쿼리가 양식에 입력 값을 요청하도록 하는 것이 좋습니다. 자세한 내용은 쿼리 소개 문서를 참조하세요.

  6. 디자인 탭의 쿼리 유형 그룹에서 삭제를 클릭합니다.

    삭제 행이 쿼리 디자인 표에 나타납니다.

    쿼리 디자인 눈금 삭제 행

  7. Ctrl+S를 눌러 쿼리를 저장합니다.

4단계: 쿼리 추가 및 삭제를 모두 실행하도록 매크로 Create

  1. 만들기 탭의 매크로 및 코드 그룹에서 매크로를 클릭합니다.

  2. 새 작업 추가 옆에 있는 드롭다운 화살표를 클릭한 다음 OpenQuery를 클릭합니다.

    OpenQuery 작업이 나타나고 해당 인수가 표시됩니다.

  3. 쿼리 이름 상자에서 2단계에서 만든 (추가 또는 테이블 만들기) 쿼리를 선택합니다.

  4. 새 작업 추가 옆에 있는 드롭다운 화살표를 클릭한 다음 OpenQuery를 클릭합니다.

    OpenQuery 작업이 나타나고 해당 인수가 표시됩니다.

  5. 쿼리 이름 상자에서 3단계에서 만든 삭제 쿼리를 선택합니다.

  6. Ctrl+S를 눌러 매크로를 저장합니다.

    레코드를 보관하려면 매크로를 실행합니다.

맨 위로 이동

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.