2009-04-17 5 views
2

모두액세스 쿼리 오류 - Null 및 변형 데이터 형식 -이 오류를 수정하려면 어떻게합니까?

이 오류는 나를 미친 듯이 만듭니다. 나는 2 시간 동안 그것을 계산하려고 노력했고/또는 행운이없는 주위를 해결하려고 노력했다. 여기에 오류가 있습니다 :

"NULL 값을 Variant 데이터 형식이 아닌 변수에 할당하려고했습니다." - tbl_parent_001 다른 큰 표합니다 (상위 요소의 기록을 단일화하기 위해)에서에 의해 그룹을 통해 생성 된

SELECT tbl_budir_002.Location_Index, tbl_parent_001.NEWPARENTID 
INTO tbl_budir_003 
FROM (tbl_budir_002 
    LEFT JOIN qry_parent_003 
     ON tbl_budir_002.Location_Index = qry_parent_003.Location_Index) 
    LEFT JOIN tbl_parent_001 
     ON qry_parent_003.PARENTNAME = tbl_parent_001.PARENTNAME; 

내가 생각하는 합병증이 시점에서 온다 :

여기 내 SQL입니다. 필자는 수동으로 테이블에 가서 필드 autonumber로 NEWPARENTID 필드를 할당해야만 PARENTNAME 레코드의 기본 키를 줄 수있었습니다. 자, 쿼리를 실행하면 위의 오류가 발생합니다. 나는 이것이 내가 문제를 일으키는 자판이라고 생각하지만, 쿼리를 사용하여 기본 키를 만드는 다른 방법을 모른다.

그래서 (1) 현재 쿼리 설정에서 오류를 완화하고 (2) 테이블의 디자인보기를 통해 수동으로 입력하는 대신 기본 키를 만드는 더 나은 방법을 생각해보십시오. 문제가 LEFT JOIN 수 있습니다처럼

덕분에, 노아

+1

Variant 데이터 형식은 VBA에 있고 데이터 테이블에는 없습니다. 따라서 SQL뿐 아니라 어딘가에서 코드를 실행해야합니다. 당신은 명확히 할 수 있습니까? –

답변

0

는 것 같습니다. 아직 존재하지 않는 테이블에 삽입하기 때문에 액세스가 NEWPARENTID 열을 기본 키로 설정하려고 할 수 있습니다. JOIN 같은 쿼리를 실행하여 동일한 오류가 발생하는지 확인하십시오. 수동으로 테이블을 수동으로 작성한 다음 Access에서 원하는 것을 추측 할 필요가 없도록 삽입하려고 할 수도 있습니다.

0

OK, 데이터베이스에 null이 있는지 확인해야합니다. 어렵지는 않지만 때로는 짜증을 낼 수 있습니다. 당신은 함축적으로 숫자를 할 수있는 것처럼 null을 텍스트로 변환 할 수 없습니다. nz - Null To Zero를 사용하십시오. 대체 텍스트 인 경우 다음과 같은 숫자, 예를 들어 0을 사용하는 경우 ","사용 nz(myText,"") or nz(myNumber,0)

SELECT nz(tbl_budir_002.Location_Index,0), 
     nz(tbl_parent_001.NEWPARENTID ,0)... 

또한 ISNULL을 (사용할 수 있습니다)하지만 당신이 조건문을 사용하는 것으로는 편리 아니다 그것을 다른 것으로 설정하십시오. 나는 기준에 isnull을 사용하고 다른 모든 것에는 nz를 사용합니다.

iif(isnull(tbl_budir_002.Location_Index),0,tbl_budir_002.Location_Index) 

재미있게 보내십시오.

4

다음은 무슨 일 이냐 : http://support.microsoft.com/kb/197587. Access 2000 외에도 KB의 정보는 최소한 내 경험에 따라 Access 2002에 적용됩니다. 해결 방법 1과 2를 넘어서서 솔루션이 그것을 견딜 수 있다면 NZ에 자 동 영역을 래핑하는 데 성공했습니다().

+0

데이터베이스에서 열이 'not null'으로 정의되어 있고 양식에서'string' 값을 삭제하면 Access 97에서도 같은 문제가 발생합니다. Access 97에서는 문자열 필드에 바인딩 된 열이'varchar ([length]) null'으로 선언되어야합니다. –

관련 문제