Memo fields have some restrictions because the data is not
actually stored in the actual table (only a pointer to it is).
This is why you cannot index them for example.
This also imposes restrictions to what you can do with them in
queries. One example is that in a Totals query you cannot group
on them. In Access 97 and older you would be given an error if
you tried to do these things.
Well, not directly, but it was easy enough to replace the memo
fields with Left(MyMemoField, N), where N is some large number that
will return the full length of the content in all or most of your
memo fields.
In Access 2000 MS decided it would be better to allow you to do
these things but implementing them by truncating all but the first
255 characters. In my opinion this was a stupid decision, but
there you go.
Yes, I think it would have been better to have given you the same
error message and implemented some property that the error message
would allow you to choose that would truncate the fields and sort on
them. Something like:
You cannot sort/group on memo fields. Would you like to have
Access truncate the fields at 255 characters so that it can
sort/group on your memo field? YES/NO
That would mean that you couldn't do it without intending to, and at
least theoretically you'd know why the fields were being truncated.
On the other hand, I don't know how you'd implement something like
that, since you'd need to expose the result somewhere so you could
undo it without deleting and recreating the column in your query.