2009-08-04 5 views
1

일부 쿼리를 여는 매크로를 실행하는 동안 Microsoft Access 구현에서 형식 불일치 오류가 발생합니다. 대부분의 테이블은 SQL Server에 연결되어 있으며 서로 다른 데이터 유형을 가진 두 개의 테이블을 함께 조인해야합니다.다른 데이터 유형을 가진 열에서 테이블을 함께 조인하는 방법은 무엇입니까?

표 A :
참조 텍스트

표 B :
REFNO 번호

나는 일반적으로 SQL 서버 측의 문제를 해결하려는 것이지만, 타격 여러 애플리케이션이있다

동일한 데이터베이스를 가지고 있고 그것들 모두를 테스트하는 데는 상당한 시간이 걸릴 것입니다. 또한, 우리는이 응용 프로그램을 완전히 다시 작성하는 과정에 있으며 오늘 내가하는 모든 작업은 완전히 버려진 것입니다 ...

액세스에서이 조인을 가능하게하는 방법이 있다면 모든 종류의 시간을 절약 할 수 있습니다. ...

답변

3

Access 내에서 CLng (또는 Cint) 함수를 사용하여 테이블 A의 REFERENCE 값을 텍스트에서 숫자로 변환 할 수 있습니다.

Access에서 데이터를 가져 오기 전에 필드의 데이터 형식을 변환하기 위해 SQL Server에서 표 A의보기를 만드는 것이 좋습니다. 다른 기존 앱에 대한보기를 테스트 할 필요는 없습니다. 다시 쓸 때보기가 더 이상 유용하지 않으면 그냥 버립니다.

+0

SQL DB에 대한 뷰를 생성하여이를 수행하고이를 Access로 가져 와서 테이블을 쿼리 뷰로 대체했습니다. 빠른 제안에 감사드립니다. – RSolberg

1

언급 한 각 열의 데이터 유형은 무엇입니까?

문자열을 비교하려는 경우 Cstr(myNumericColumn) = myStringColumn을 사용할 수 있습니다.
또는 숫자 모드에서 비교하려면 CLng(myStringColumn) = myNumericColumn을 수행하십시오.

+0

그 위 TABLEA 텍스트 열을 갖는다. – RSolberg

+0

비교 방법에 따라 위의 두 가지 중 하나를 사용할 수 있습니다. – shahkalpesh

+0

나는 그것이 합류의 문맥에서 작동한다고 생각하지 않는다. – RSolberg

2

기준에서 비교할 수 있습니다.

SELECT [REFERENCE], [REFNO] 
FROM [Table a], [Table b] 
WHERE [REFERENCE]=cstr(nz([REFNO],"")) 

또한 패스워드 - SQL Server에서 실행되는 쿼리를 쿼리하여 데이터 만 반환 할 수도 있습니다. TableB의 정수가 열을 갖는다

SELECT [REFERENCE], [REFNO] 
FROM [Table a], [Table b] 
WHERE [REFERENCE]=cast([REFNO] as varchar(25)) 

HTH

관련 문제