2017-09-27 1 views
0

where 절에 string을 사용할 때 특정 수의 문자가 있습니까? tempExtractedtbl에서의 MyString에레코드 세트의 메모 데이터 유형이있는 필드

여기
SQL2 = "SELECT DISTINCT " & a & " AS MyString," & b & " FROM tempExtractedtbl" 
Set rsGenerate = CurrentDb().OpenRecordset(SQL2) 
Do While Not rsGenerate.EOF 
    SQL3 = "Select intId from IPDMst where TXTliteral='" & 
    rsGenerate.Fields("MyString").Value & "'" 

    Set temprsGenerate = CurrentDb().OpenRecordset(SQL3) 

값은 다음의 레코드에 저장 될 때, MyString의 값이 255 자로 트리밍

PO_EDGE_00503|Device Charge_1|Device 
Type~Smartphone~Manufacturer~Apple~Model~iPhone 6~Capacity~32 
GB~Colour~Space Grey~Blue Tick~FALSE~4GX~TRUE~Splash Proof~FALSE~Removable 
Battery~FALSE~Expandable Memory~FALSE~HD Video 
Recording~TRUE~NFC~TRUE~Featured~FALSE~Bonus Gift~FALSE~Operating 
System~ios~Hot Buy~FALSE~Root Offering~Mobility Offer~ 

하지만. 내가 직접 실행 창에

?rsGenerate.Fields("MyString").Value 

을 실행할 때, 나는

PO_EDGE_00503|Device Charge_1|Device 
Type~Smartphone~Manufacturer~Apple~Model~iPhone 6~Capacity~32 
GB~Colour~Space Grey~Blue Tick~FALSE~4GX~TRUE~Splash Proof~FALSE~Removable 
Battery~FALSE~Expandable Memory~FALSE~HD Video 
Recording~TRUE~NFC~TRUE~Featured~F 

로 MyString의를 얻을 내가 SQL3을 실행할 때 MyString에 트리밍 된 바와 같이 나는 다음과 같은 오류를 얻을. MyString에이 필드를 갖는 메모 데이터 형식 그대로

Error Description

메모 필드에 대한 레코드의 어떤 한계가있다. 길이가 255자를 넘는 문자열을 레코드 세트에 저장하고 사용하는 방법이 있습니까?

+1

... 오류가 발생합니까? (질문 하단에 추가하십시오.) –

+0

복제 할 수 없습니다. where 문은 쿼리 SQL에 저장할 때 SQL 문에 허용되는 총 문자 수 65536 자로 제한됩니다. 테이블을 참조하는 경우 1GB 문자열까지 올라갈 수 있다고 생각하지만 WHERE 문에서 작동하면 시도하지 않았습니다. –

답변

2

DISTINCT 메모 필드가 함께 사용되지 않습니다. 그래서, 드 복제, 집계 서식 및 : 당신이 메모를 기반으로 데이터를 처리를 요구하는 경우

http://allenbrowne.com/ser-63.html

는 액세스 메모를 자릅니다.

고유성 : 당신은 별개의 값을 반환하는 쿼리를 요구하기 때문에, 액세스가 다른 모든 기록에 메모 필드를 비교해야합니다. 비교 결과 잘림이 발생합니다.

SELECT SQL에서 DISTINCT를 제거하십시오.
메모가없는 고유 값을 선택하는 다른 쿼리를 만든 다음 해당 쿼리를 중복 제거하지 않고 검색하는 다른 쿼리의 원본으로 사용할 수도 있습니다.

+0

안녕하세요 앙드레, 답변 주셔서 감사합니다. SQL2와 별개의 것을 제거했지만 동일한 오류가 발생합니다. –

+0

레코드 세트를 열기 전에'SQL2'의 마지막 내용을 보여주십시오. (질문을 편집하여 거기에 추가하십시오.) @YashR. – Andre

+0

안녕하세요 Andre, SQL2에서 Distinct를 제거하면 MyString의 정확한 값을 얻었습니다. 하지만 Set temprsGenerate = CurrentDb(). OpenRecordset (SQL3)을 실행하려고하면 오류가 발생합니다. 테이블 필드가 메모 인 경우 레코드 집합에 제한이 있습니까? –