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

时间:2017-09-27 04:20:20

标签: ms-access access-vba

在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时收到以下错误。

Error Description

备注字段的记录集是否有任何限制,因为MyString是具有备注数据类型的字段。有没有办法在记录集中存储长度超过255个字符的字符串并使用它?

1 个答案:

答案 0 :(得分:2)

DISTINCT和备忘录字段不能一起使用。

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

  如果要求它根据备忘录处理数据,

Access会截断备忘录:聚合,重复数据删除,格式化等。

唯一性:由于您要求查询仅返回不同的值,因此Access必须将备注字段与所有其他记录进行比较。比较导致截断。

从SELECT SQL中删除DISTINCT 您可能需要创建另一个查询,在没有备忘录的情况下选择不同的值,然后将其用作检索备忘录而不进行重复数据删除的另一个查询的源。