2014-11-07 1 views
0

Excel 대신 Access 데이터베이스를 사용합니다. 하지만 하나의 거대한 엑셀 시트에서 Access의 미리 준비된 여러 정규화 된 테이블로 데이터를 가져와야합니다. 코어 Access 테이블에는 주로 다른 테이블의 외래 키가 있습니다 (물론 다른 필드는 텍스트 또는 날짜 임).Excel에서 가져온 테이블 내에서 Access에서 외래 키를 할당하는 방법

가장 쉬운 방법으로 가져 오기를 수행해야합니까? 액세스 필드 '국가'에 '미국'문자열이 없기 때문에 가져 오기를 직접 수행 할 수 없습니다. 외래 키가 있어야합니다. 84 테이블에서 tblCountries. Excel에서 DLOOKUP 함수에 대해 생각하고 FK에 대한 문자열을 바꿉니다 ... 더 간단한 방법을 알고 있습니까?

당신은 여러 Access 테이블에 엑셀 데이터를 얻을 방법을 언급하지 않는, 마틴

+0

DLOOKUP을 사용하면 성능 문제가 발생할 수 있으므로 피해야합니다. Access 테이블이 미리 준비되어 있다고 가정하므로 키 값 (예 : 84 = 미국)을 보유하도록 필드가 정의되어 있지만 가져온 데이터에 값이 들어 있지 않다는 것을 의미한다고 가정합니다. 키 테이블에 NAME과 ID (예 : 84 | 미국)가 있다고 가정하면 일련의 쿼리를 수행 할 수 있습니다. 먼저 일치하지 않는 값을 찾습니다. 두 번째 조인 일치 및 업데이트 키 필드. –

+0

예, 설명한대로 테이블이 준비되어 있습니다. 하지만 쿼리 생성 과정에서 조금 잃어 버렸습니다. 일치하지 않는 값을 찾고 일치 항목을 찾기 위해 쿼리를 어떻게 디자인해야합니까? (물론 쿼리 자체를 만드는 방법을 알고 있지만 SQL 언어를 구조화하는 방법을 모르겠습니다.) – user3751725

+0

이 솔루션은 '설명'블록의 범위 내에서 설명하기 어려울 것이므로 몇 분 안에 답변을 추가하겠습니다. Excel 가져 오기가 두 번 이상 발생합니까? –

답변

0

을 주셔서 감사합니다, 그래서 당신이 전체 엑셀 다음 하나 개의 큰 테이블로 파일에서 데이터를 탈옥 가져옵니다 가정합니다 그곳에. 가져온 데이터가 기존의 액세스 키 (예 : 맞춤법 오류, 새 값 등)와 일치하지 않을 수 있으므로 수정해야 할 위치를 찾아야합니다. 여기에는 다수의 '일치하지 않는 쿼리'와 여러 개의 '업데이트 쿼리'가 포함되며, 마지막으로 추가 쿼리를 사용하여 가져 오기 테이블의 데이터를 최종 휴지 장소로 가져올 수 있습니다. 예를 들어, 'Country = United States'를 가져 왔지만이 값을 "84"키와 연관시켜야합니까?

는의 몇 가지 예를 설정하자

  1. 당신이 하나 개의 큰 Access 테이블로 Excel 데이터를 가져 가정합니다. 또한 가져 오기에 키를 가져 오는 데 필요한 세 개의 필드가 있다고 가정합니다.
  2. 이미 다음과 같은 Access에서 여러 제어 테이블이 :

을 수행합니다. tblRegion는 : RegionCode, RegionName이 (즉, 1 = 태평양, 2 = 북미, 3 = 아시아, ...)

B가 포함되어 있습니다. tblCountry은 : | 미국 | COUNTRYCODE, 국가, 지역 (예 : 84 포함 2

을 C tblProductType이 :.. ProdCode, ProductType (즉, VEH 포함 | 차량을, ELE | 전기, 등)

d를 가져온 가정 데이터 필드 여기

을 가지고 내가 걸릴 단계는 다음과 같습니다

  1. 엑셀 파일이 이미 (즉, 84)의 키 값을 유지하기 위해 열을 가져 오기 전에 추가 또는 가져 오기 후하지 않는 경우. , 열을 추가하려면 테이블을 수정하십시오.
  2. 관련이 필요한 각 키 필드에 대해 '일치하지 않는 쿼리'를 작성하십시오. ('쿼리 마법사', '불일치 쿼리 마법사 찾기'를 사용하면 키 테이블에 일치하지 않는 가져온 데이터가 모두 표시되므로 해당 값을 수정해야합니다. 즉 :

    SELECT tblFromExcel.Country ., tblFromExcel.Region가 tblFromExcel.ProductType, tblFromExcel.SomeData tblFromExcel에서 왼쪽 tblFromExcel ON tblCountry 가입 [국가] = tblCountry [COUNTRYNAME (((tblCountry.CountryName)이 NULL) 임) ].

  3. 업데이트 일치하는 값을 가진 FK :

    업데이트 tblCountry INNER JOIN tblFromExcel ON tblCountry.C ountryName = tblFromExcel.국가 SET tblFromExcel.CountryFK = [CountryNbr];

  4. 다른 모든 키 필드에는 위의 일치하지 않는/일치하는 항목을 반복하십시오.

+0

당신은 모든 포인트를 올바르게 가정합니다 :-) 나는 그것을 시도하고 알려드립니다. 감사. – user3751725

관련 문제