2017-01-06 3 views
0

TLDR : 질문 끝 부분에 긴 질문을 요약했습니다.MS 액세스, Excel을 사용하여 테이블 수정; ID 자동 번호 처리

본인의 비즈니스는 관계, PK 및 FK로 올바르게 설정된 Ms 액세스 DB를 사용하고 있습니다. 때로는 테이블 만 수정해야합니다 (필드 추가, 컬럼 작업 수행, Excel만이 할 수 있다고 믿는 것들 : 문자열 연산 (LEFT, RIGHT 등), INDEX/MATCH (VLOOKUPS), 자동 채우기 필드 등 ...

내가 수행 할 작업은 적용 할 테이블을 Excel로 내보내고 수정을 수행하는 것입니다. 완료되면 테이블을 다시 가져오고 싶습니다. 문제가 발생합니다. ID 및 일련 번호 기능을 Access에서 사용합니다. 내가 테이블을 가져올 때 이전 ID 열을 사용할 수 없으며 새로운 일련 번호 ID 열을 얻을 수 있도록 새 ID를 만들어야합니다. 레코드 순서 또는 레코드 수 (예 : 일부 레코드가 삭제 된 경우)가 있으면 새 자동 생성 ID는 이전 레코드와 동일하지 않으므로 내 레코드에 문제가 발생합니다 관계. FK는 더 이상 올바른 PKs를 가리 키지 않을 것입니다.

이 문제를 처리하는 방법을 찾으려고했지만 아무도이 문제가없는 것처럼 아무것도 찾지 못했습니다. 나는 아마 그것을 올바르게하고있는 I 'm가 아니다고 생각한다.

짧은 버전 : Access-Excel 테이블을 내보낼 때 PK/FK 문제가 발생합니다. 가져 오는 동안 필자는 초기 PK 열을 일련 번호로 다시 사용할 수 없으므로 새 ID 자동 번호 열을 만들어 일부 ID가 변경되어 FK (관계)에 문제가 발생할 수 있습니다. 동기화 중에

+1

Excel로 내보내지 않고 Access에서 직접 업데이트를 수행 할 방법을 찾고 싶습니다. 액세스는 또한 많은 문자열 작업 (LEFT, RIGHT MID 등) 및 조회 (DLOOKUP을 확인하거나 찾고있는 열에서 테이블 조인 만 사용)를 수행 할 수도 있습니다. Excel에서 VBA 함수를 작성해야 할 수도 있지만 Access에서 수행 할 수없는 작업이 많다는 것을 확신하지 못합니다. Access에 모두 보관하면 PK/FK 문제를 해결할 수 있습니다. – Skippy

+0

통찰력에 감사드립니다. Access에 머물러 있으면 문제가 해결된다는 것이 사실입니다. 그러나 오늘날의 문제의 경우에는 기존 테이블에 많은 열을 추가해야합니다. 본질적으로 웹 사이트 관련 특성 (사용자 이름, 사용자 역할 및 기타 사용자 관련 특성)을 고객에게 추가해야합니다. 내 고객 표와 1 : 1로 연결된 새 테이블을 만들 수 있다고 생각합니다. 슬프게도 우아한 해결책은 아닙니다. –

답변

1

새 필드 추가가 일회성 (또는 드문) 작업이라고 가정하면 기존 테이블을 먼저. 모든 새 데이터 (사용자 이름, 역할, 기타 속성)를 임시 테이블로 가져옵니다. 그런 다음 업데이트 쿼리를 사용하여 원래 테이블의 새 열에 관련 데이터를 가져 와서 Excel에서 수행 한 것과 일치하는 두 테이블을 조인합니다. 가져 오기 전에 새 데이터의 모든 문자열 작업을 Excel에서 수행 할 수 있지만이 작업을보다 편하게 수행 할 수는 있지만 임시 데이터 테이블에 기존 테이블의 내용과 정확히 일치 할 수있는 하나 또는 두 개의 열이 있어야합니다. 업데이트를 수행하십시오.

0

PK/FK 문제는 일반적으로하지 일련 번호 ID 열이있는 임시 테이블에 엑셀에서 필요한 모든 데이터를 가져 해결 한 후 3 개 쿼리를 수행 ID가 같은

  • 있습니다

    • 업데이트 기록을, 소스 ID가 목적지에 존재하지 않는 경우 대상 ID 소스에서 대상 테이블에
    • 삽입 행이 존재하지 않는 경우 대상 테이블에서 행을 삭제

    확실한 경우 가져온 ID 데이터가 고유하므로 INSERT SQL을 사용하여 자 동 번호 필드에 ID를 삽입 할 수 있지만 이는 좋은 해결책이 아닙니다. Excel ID에 대해 별도의 키 열을 사용하는 것이 좋습니다.

    여러 열에 문제가있는 경우 특성 값 열이있는 테이블 하나를 사용할 수 있습니다. 이 경우 얼마나 많은 속성을 가지고 있더라도 상관 없습니다.

    Excel은 사용자 및 기본 데이터 분석가에 대한 정보를 수집하는 데 적합하지만 주요 계산은 Access에서하는 것이 더 낫습니다. 매우 강력한 도구가 있습니다. 쿼리를 사용하여 양식과 VBA가 거의 모두 구현 될 수 있으며 Excel 등에서 수행 할 수 있습니다.