记录集中的备注数据类型字段

问题描述:

在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语句中工作,我还没有尝试过。 –

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)时,它会给出错误。当表的字段是备忘录时,是否有任何记录集限制? –