2013-12-09 2 views
0

SQL을 실행하려고하면 날짜 변환 오류가 발생하고 SQL 데이터베이스는 Access 데이터베이스입니다. 우리의 컴퓨터는 모두 사무실 2010이 설치된 Windows 7을 실행하고 있습니다. 프런트 엔드는 accde입니다.날짜 변환 오류 - MS 액세스 프런트 엔드 SQL 백 엔드 쿼리

데이터베이스에 검색 양식이 있고 두 필드를 제외한 모든 필드가 올바르게 작동합니다. 절은 앞이 보이는 곳

쿼리는 몇 가지 조사를 바탕으로 VB 코드

"WHERE DrawnDate BETWEEN #" & Format(FromDate, "yyyy-mm-dd") & "# AND #" & _ 
    Format(ToDate, "yyyy-mm-dd") & "#" 

끝은, 나 또한 결과의 변화없이 dd-mon-yyyydd-mm-yyyy의 날짜 형식을 시도했다. 오류를 수신

The expression On Click you entered as the event property setting produced the following error: ODBC -- call failed.

은 다음과 같습니다

[Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting date and/ or time from character string. (#241)

다른 문제는 이것은 단지 내 또는 내가 테스트 한 다른 사람에 지금까지가 아니라 하나의 PC에서 발생한다는 것입니다.

+0

SQL이 SQL Server에 ** 전달 ** 전달됩니까? 그렇다면 해시 문자를 좋아하지 않을 것이라고 생각합니다. 이 경우 해시 문자를 작은 따옴표로 변경해보십시오. 또한 DrawnDate가 DateTime 열인지 확인할 수 있습니까? –

+0

아니요 테이블이 액세스 할 때 연결된 테이블이므로 곧장지나 가지 않습니다. 그 이유는 따옴표가 거기에 있어야합니다 (그건 내 첫 번째 생각도 :) DrawnDate SQL datetime 유형입니다. 나를 위해 정말 이상한 일은 대부분의 컴퓨터에서 작동하지만 하나에서 작동하지 않는 얼굴입니다 ... 그리고 그것은이 날짜 필드를 항상 사용하는 사람입니다! – goneos

+0

흠. 확실하지 않습니다. 미안해. 아마 작동중인 컴퓨터에 실패하고있는 컴퓨터에서 ODBC 연결을 확인하는 것이 좋습니다. 모든 설정 (언어 및 모두)을 확인하고 모두 동일한지 확인하십시오. –

답변

0

이것은 Microsoft Office 버그입니다.

이 문제는 매크로/VBA에 "참조 문제"가있는 경우 주로 발생합니다.

팔로우 다음 단계

  1. , Visual Basic 편집기로 이동 또는를 누릅니다 (Alt + F11) 메뉴에서
  2. 클릭
  3. 의 선택을 취소 단어 "누락로 시작하는 라이브러리 참조를 참고> 도구 - : ... "
  4. 지금 쿼리를
3

질문 쿼리가 통과 - 쿼리인지 여부, 인 (t을 실행하려고 테이블이 연결되어 있다는 사실은 부적합합니다.) 쿼리가 통과 (Pass-Through)이면 SQL Server 언어로 작성해야하며, 그렇지 않으면 Access dialect에 작성해야합니다. 통과는 쿼리의 속성이며 테이블의 속성은 아닙니다.

또 다른 요점은 날짜가 SQL Server의 유효한 날짜 범위 내에 있는지 여부입니다. 이 범위는 Access 및 SQL-Server에 대한 다른 :

SQL-Server
datetime (January 1, 1753 - December 31, 9999)
datetime2 (January 1, 0001 to December 31, 9999)
smalldatetime (January 1, 1900 to June 6, 2079)
date (January 1, 0001 to December 31, 9999)

Access
Date/Time (January 1, 100 A.D. -December 31, 9999 A.D.)

0 (기본값)의 날짜 값은 Access에서 1899년 12월 30일을 나타내며,이 SQL-서버의 smalldatetime 범위 밖에있다.

전달 된 값이 String이면 Format 함수가 작동하지 않습니다. FromDateToDate 변수가 VBA에서 As Date으로 선언되었거나 날짜가 포함 된 변형인지 확인하십시오. VarType(FromDate)은 후자의 경우 7 (= vbDate)을 반환해야합니다. 변종 인 경우 Null이 아니어야합니다.

1

우리는 정확히 한 대의 컴퓨터에서 이와 똑같은 오류가 발생하여이를 제거하고 DAO360.DLL (Visual Basic Tools-> References)에 대한 참조를 다시 추가하여 해결했습니다. 그것은 결코 실종으로 보여주지 못했습니다.

이것은 확실히 통과가 아닙니다 (예 :# date 리터럴 종료 문자가 확실히 Access/Jet 일이기 때문에 연결된 테이블을 사용합니다. ODBC Trace는 "re-reference"이후에 SQL Server로 보내지는 실제 SQL의 생성에 변화가 있음을 보여줍니다.

+0

이것은 나를 위해 해줬습니다 +1 – Spasticmonkey

관련 문제