2013-08-29 1 views
0

MS Access에서 ADODB.Recordset을 여는 데 사용되는 SQL 문자열이 있습니다. 내가 사용되고있는 SQL을 복사, 직접 실행 창에공백으로 인해 ADODB.Recordset to SQL Server 쿼리가 실패합니다.

Error -2147217900 (Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.) in procedure SendAutomaticEmails of Module AutomaticEmails

나는 SQL Server Management Studio를 붙여 넣습니다 : 나는 레코드를 열려고하면 나는이 오류가 발생합니다. SQL Server는 쿼리를 좋아하지 않습니다. 빨간색 밑줄 공백 ... 수동으로 SQL의 각 공백을 삭제하고 다시 추가하면 쿼리가 작동합니다. Access VBA 프로 시저 (SQL 문자열)에서 동일한 작업을 수행하면 작동합니다.

공백은 무엇입니까?! 파일 인코딩 문제라고 생각하십니까? 이 Access 파일은 TFS에서 소스 제어되므로 소스 파일은 TFS에서 가져 왔음에 유의해야합니다 (문제가 전혀없는 경우). 위는 "A"문자/w 인코딩 문제이고, 표시 내 댓글로

SELECT TOP 1 Person.PersonID, Person.TypeID, ToStatusID, FromStatusID 
FROM 
StatusTracking, 
Person 
WHERE Person.PersonID = 85432 
AND Person.PersonID = StatusTracking.PersonID 
ORDER BY ID DESC 
+2

문자열을 표시 하시겠습니까? –

+0

안녕하세요. 다음은 문자열입니다 : StatusTracking, 사람 Person.PersonID = 85432 및 Person.PersonID = StatusTracking.PersonID 더 조사를 수행 한 후 ID DESC – StoneJedi

+0

BY 주문 FROM TOP 1 Person.PersonID, Person.TypeID, ToStatusID, FromStatusID 을 선택 메모장 + +를 사용하여 일부 인코딩 변경을 수행하면 거기에 약간의 가상 문자가있는 것처럼 보입니다. VBA 편집기에서 SQL을 메모장 ++로 복사하고 인코딩을 ANSI로 변경하면 Â 문자가 잔뜩 나타나기도합니다. 그들이 어떻게 거기에 갔는지에 관해서는, 나는 모른다. 그러나 그것은 우리가 조사 할 무엇인가이다. SELECTA TOPA 1A Person.PersonID하는 Person.TypeID하는 ToStatusID하는 FromStatusIDÂ FROMÂ StatusTracking하는 개인 WHEREÂ Person.PersonIDÂ ​​= A 85,432 Â 안다 Person.PersonIDÂ ​​= A StatusTracking.PersonIDÂ ​​ ORDERÂ 정상적으로 처리가 불가능한 IDA DESC – StoneJedi

답변

0

:

은 문자열입니다.

더 많은 조사를하고 메모장 + +를 사용하여 일부 인코딩 변경을 수행하면 일부 환상 문자가있는 것으로 보입니다. VBA 편집기에서 SQL을 메모장 ++로 복사하고 인코딩을 ANSI로 변경하면 Â 문자가 잔뜩 나타나기도합니다.

SELECTÂ TOPÂ 1Â 
    Person.PersonID 
    , Person.TypeID 
    , ToStatusID 
    , FromStatusID 
FROM StatusTracking, Person 
WHEREÂ 1 = 1 
    ANDÂ Person.PersonIDÂ =Â 85432 Â 
    ANDÂ Person.PersonIDÂ =Â StatusTracking.PersonIDÂ 
ORDERÂ BYÂ IDÂ DESC