2013-02-01 3 views
1

테이블 및 쿼리의 수가 적지 만 다소 밀접한 관련이있는 다소 복잡한 데이터베이스 스키마를 다시 만들고 확장하고 있습니다. 내가 가진 유일한 문제는 테이블 중 하나에서 다른 테이블과 관련된 두 필드가 레코드의 ID가 아니라 레코드의 필드 이름을 사용하고 있다는 것입니다. 참조 필드 데이터 유형을 텍스트에서 숫자로 변경하고 일부 데이터를 입력했습니다. 쿼리와 보고서는 1 예외가 적용되어 정상적으로 작동합니다.데이터 형식 변환 액세스

두 참조 필드를 모두 사용하는 보고서가 하나 있습니다. 필드 중 하나는 ok이지만 다른 하나는 숫자 대신 기호를 표시합니다. (내 샘플 엔트리의 ID는 14와 20이고 표시된 기호는 이중 금지 음악 노트/alt 코드 14/단락 끝에 대한 기호/alt 코드 20 /입니다.) 추가로 조사한 결과, 보고서에 대한 쿼리 원본을 포함하는 쿼리는 두 필드가 모두 올바르게 표시되지만 두 번째 필드에 숫자 대신 기호가 표시되는 쿼리에 다른 테이블을 추가하면

나는이 필드를 텍스트로 다시 변환하고 다른 테이블의 id 필드를 텍스트로 변환하여이 문제를 해결했습니다. 이 텍스트 키는 나중에 나를 괴롭힐 것입니다. 그래서 너무 늦기 전에 그것을 바로 만들고 싶습니다.

이것은 모두 액세스 2010 btw입니다. 소스 파일이 이미 2010 년에 있습니다. (심지어 2007 년에도 열 수 없습니다)

+0

전체 부패 체크리스트를 통과 했습니까? 나는 메모 데이터 형식을 이상한 문자로 표시했지만 숫자 데이터 형식은 표시하지 않았습니다. – Fionnuala

+0

무슨 뜻인지 자세히 설명해 주시겠습니까? 나는 압축하고 수리했다. –

+0

Tony Toews는 에스컬레이션 목록 http://www.granite.ab.ca/access/corruptmdbs.htm을 가지고 있으며 모든 것을 새 데이터베이스로 가져올 가치가 있습니다. 특히 일반적으로 개발중인 경우 분할 된 데이터베이스로 작업하는 것이 가장 좋습니다. 나에게 일어나는 또 다른 요점은 정렬 순서가 일반 - 유산인가? 그것은 아마 있어야하기 때문에. – Fionnuala

답변

1

확실히 부패 문제와 같은 것 같습니다. 새 열을 추가하고 이전 열의 값 (아마도 cint (indexfield) 사용)으로 값을 채우기 위해 업데이트 쿼리를 실행 한 다음 이전 열을 삭제합니다.

데이터베이스를 디 컴파일하는 것도 좋은 방법 일 수 있습니다. 이는 종종 부패 문제를 해결하는 데 도움이됩니다.