[엑셀×액세스] “조건식의 데이터 형식이 일치하지 않습니다.”

마이크로소프트 오피스의 엑셀과 액세스를 이용해 데이터를 처리 할 일이 있어서 엑셀과 액세스를 연결하고 간단한 SELECT 쿼리문을 실행 시켰는데요. 생각지도 못 한 아래와 같은 오류 메시지가 뜨더라구요.

두 줄 짜리 간단한 SELECT 쿼리를 사용하는데 뭐가 문제인지 한참을 못 찾다가 아래와 같이 해결책을 찾아서 기록으로 남겨둡니다.

쿼리 예제

제가 사용했던, 오류를 일으켰던 쿼리를 대충 각색하면 아래와 같습니다.

SELECT * FROM [테이블]
WHERE SDATE='2021=12-03' AND PID='A0001'

SDATE 라는 컬럼의 형식은 날짜가 맞고, PID 라는 컬럼의 형식도 String 이 맞는데 도대체 뭐가 문제인지 모르겠더라구요.

그래서 한참을 고민하다가 아주 예전에 비슷한 경험을 했던 기억이 떠올랐습니다.

문제 해결

결론부터 말하자면 쿼리를 아래와 같이 수정하니 정상작동 했습니다.

SELECT * FROM [테이블]
WHERE SDATE=#2021=12-03# AND PID='A0001'

회사에서 MS-SQL 을 사용하면서 날짜나 이런거 상관없이 그냥 다 작은 따옴표(')로 처리를 했었는데, 액세스는 날짜 형식에 대해서는 # 를 사용해서 지정해주어야 하더라구요.

별것도 아닌 것 때문에 얼마나 많은 시간을 허비했는지 모르겠습니다.

혹시 같은 문제를 겪고 계신 분들은 위의 방법으로 해결 해보시기를 바랍니다.

끝.