在where子句中使用它时,字符串中是否有任何特定数量的字符?
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)
此处tempExtractedtbl中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~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时收到以下错误。
备注字段的记录集是否有任何限制,因为MyString是具有备注数据类型的字段。有没有办法在记录集中存储长度超过255个字符的字符串并使用它?
答案 0 :(得分:2)
DISTINCT
和备忘录字段不能一起使用。
http://allenbrowne.com/ser-63.html
如果要求它根据备忘录处理数据,Access会截断备忘录:聚合,重复数据删除,格式化等。
唯一性:由于您要求查询仅返回不同的值,因此Access必须将备注字段与所有其他记录进行比较。比较导致截断。
从SELECT SQL中删除DISTINCT 您可能需要创建另一个查询,在没有备忘录的情况下选择不同的值,然后将其用作检索备忘录而不进行重复数据删除的另一个查询的源。