2017-09-27 61 views
0

在where子句中使用它時,字符串中是否有任何特定數量的字符?在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) 

這裏值爲:

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~ 

但是,當其存儲在記錄集,MyString的值被調整到255個字符。當我在即時窗口中執行

?rsGenerate.Fields("MyString").Value 

,我得到的MyString爲

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 

當我執行SQL3我收到以下錯誤,MyString的修剪。

Error Description

是否有備忘錄字段記錄的任何限制的MyString是一個具有字段備忘錄數據類型。有沒有辦法將長度超過255個字符的字符串存儲在記錄集中並使用它?

+1

...和錯誤會是? (將它們添加到問題的底部) –

+0

我無法複製此內容。 where語句在將它存儲在查詢SQL中時受到SQL語句中允許的字符總數的限制,爲65536個字符。如果你指的是一張表,我認爲你可以上到一個1GB的字符串,但如果這些在WHERE語句中工作,我還沒有嘗試過。 –

回答

2

DISTINCT和備註欄不會放在一起。聚集,去複製,格式化等等:

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

訪問,如果你問它來處理基於備忘錄數據截斷備忘錄。

唯一:既然你問的查詢只返回不同的值,Access必須比較備註字段對所有其他記錄。比較會導致截斷。

從SELECT SQL中刪除DISTINCT。
您可能需要創建另一個查詢來選擇不帶備註的不同值,然後將其用作另一個查詢的來源,以便在不刪除重複的情況下檢索備忘錄。

+0

嗨安德烈,謝謝你的答案。我已經刪除了不同於SQL2,但我得到相同的錯誤。 –

+0

在打開記錄集之前,請顯示「SQL2」的最終內容。 (編輯你的問題並將其添加)@YashR。 – Andre

+0

嗨,安德烈,當我刪除與SQL2不同,我得到了MyString的確切值。但是當我嘗試執行Set temprsGenerate = CurrentDb()。OpenRecordset(SQL3)時,它會給出錯誤。當表的字段是備忘錄時,是否有任何記錄集限制? –

相關問題