2013-07-15 2 views
0

Access 2010에서 SQL Server 2008로 업 사이즈하려고합니다. 모든 테이블이 하나의 테이블을 제외하고 작동하고 있습니다. SQL Server에서 테이블이 만들어 지지만 데이터가 업 사이징되지 않습니다. 이유는 하나의 열에는 Access에 저장된 날짜가 영국 형식 (예 : 31/12/12)으로 포함되어 있기 때문입니다. 나는이 사실을 알고있다. 왜냐하면 텍스트 파일로의 내보내기는 그 날짜 열에도 실패하기 때문이다. 오류 메시지는 "날짜가 범위를 벗어났다"때문에 오류 메시지가 명시 적으로 말하지만 더 많은 것을 가리킨다. b) Access에서 열을 가져오고 업 사이즈를 수행하면 데이터가 업 사이징됩니다. 따라서 문제는 실제로 날짜 열이라는 것은 의심의 여지가 없습니다.SQL에 대한 Upsizing Access UK 날짜 및 미국 날짜 형식

그렇습니다. 업 사이징 마법사의 단점으로 인해 진화 한 것으로 보이는 SSMA (SQL Server Migration Assistant)에 대해 알고 있습니다. SSMA는 나를위한 선택 사항으로 보이지 않습니다. 나는 64 비트 Windows 7 머신을 사용하고 있는데, 그 길을 내려 가려고하면 "SSMA/Access의 올바른 버전이 없다"는 등의 무한 루프가 발생합니다. "Office의 64 비트 버전을 설치해야합니다."등. 그것은 옵션이 아닙니다.

업 사이징 마법사가 영국 날짜를 처리 할 수 ​​없다는 것은 귀찮습니다. 그래서 나는 해결 방법을 찾으려고 노력하고있다. 나는 Access 전문가가 아니다. 나에게 발생하는 아이디어는 다음과 같습니다 탭으로 구분 된 텍스트 파일에 테이블을 수출

  • , 데이터

  • 는 계산 작성 얻을를 마이그레이션 SSIS를 사용하고 파생 열 변환을 수행 Access에서 테이블의 필드, 새 열로 데이터 가져 오기 및 원래 열 삭제. (그러나, 또한 성가 시게, 즉 작동하지 않습니다 중 하나;. 내가 the instructions from MS을 따라가 말할 때, 음 ... 액세스가 식 작성기를 표시하지 않습니다 "액세스가 식 작성기를 표시"

감사 어떤 제안이, 고마워요

+0

SSMA를 실행하는 32 비트 컴퓨터를 찾을 수 있습니까? –

답변

0

VBA 전문가가 알 수있는 더 많은 프로그래밍 방식의 솔루션이 많지만 의심 할 여지가 없지만 지금은 더 큰 물고기가 튀어 나왔습니다. 문제가 발생했지만 Access에 대해 몇 가지 사실을 배웠습니다. 해킹을 가치가있는 곳에서 공유해 드리겠습니다.

  • 식 작성기가 이전 (Access 2000) .MDB 파일 이었기 때문에 표시되지 않습니다. .accdb 형식으로 변환했습니다 (& 게시, Access 2010에서 변환 가능). 그런 다음 표현식 빌더가 테이블의 계산 된 필드에 사용 가능하게됩니다.

  • 나는 4 개의 계산 된 필드를 만들었습니다. 각 날짜 부분에 하나씩, 그리고 이들을 연결하는 하나의 최종 텍스트 필드가 있습니다. 다섯 번째 (텍스트) 열을 만들고 수동으로 데이터 테이블 뷰의 값을 복사했습니다 (내가 말했듯이 해킹이었습니다).계산 된 열에 대한 표현 (의 처음 세 계산 된 열이 'TheYear', 'TheMonth'과 'TheDay'이라고 가정 해 봅시다)했다 :

년 ([TheBritishDate])
월 ([TheBritishDate])

그런 다음 한 자리 숫자 값을 처리 할 수있는 IIF 표현식이있는 계산 된 텍스트 열인 연결 열 식 ("PAD "Access에서의 기능) :

[TheYear] + '-'+ IIf (Len [TheMonth) = 2 [TheMonth], '0'+ [TheMonth]) + '-'+하여 IIf (렌 ([TheDay) = [TheDay], '0'+ [TheDay])

이것은 SQL과 같은 날짜 형식의 텍스트 필드를 생성합니다. '2013-12-31'

그런 다음 테이블의 열 Ctrl-C 및 Ctrl-V를 새로운 빈 텍스트 열로 선택했습니다. 그런 다음 원래 위반 열과 계산 된 열을 삭제합니다. 최종 결과는 오류없이 업 사이즈되고 원하는대로 T-SQL에서 조작 할 수있는 올바른 형식의 (텍스트) 열입니다.