Sql 当记录数达到某一点时,显示汉字或符号而不是实际值的备注字段

Sql 当记录数达到某一点时,显示汉字或符号而不是实际值的备注字段,sql,ms-access,Sql,Ms Access,这是我在这里的第一篇文章,我是一个数据库新手。我试图找到一个答案,但我不确定我是否理解它如何适用于我的案例 我的access程序生成一个具有不同类型字段(自动编号、短文本、备忘录)的查询,然后用于创建报告。 它一直工作良好,直到现在,但由于数据库的增长,我遇到了一个问题 我使用where条件()中的ID(主键)来过滤报告。我创建了一个长字符串,用于获取所选记录的所有id: WHERE ID IN (1200,1201,1203,1226,1227,1228,1229,...) 当查询中达到一定

这是我在这里的第一篇文章,我是一个数据库新手。我试图找到一个答案,但我不确定我是否理解它如何适用于我的案例

我的access程序生成一个具有不同类型字段(自动编号、短文本、备忘录)的查询,然后用于创建报告。
它一直工作良好,直到现在,但由于数据库的增长,我遇到了一个问题

我使用where条件()中的ID(主键)来过滤报告。我创建了一个长字符串,用于获取所选记录的所有id:

WHERE ID IN (1200,1201,1203,1226,1227,1228,1229,...)
当查询中达到一定数量的字符(大约4000个)时,我得到的是中文字符,而不是查询结果的所有备注字段,并且只有备注字段(然后在报告中)

查询大小是否有限制?不是32000个字符吗?
为什么这些字符仅在我选择太多记录时才显示

IN()是否有一个子站点可以帮助我减少查询长度,还是应该完全避免使用备注字段?

编辑:这就是查询(为了便于阅读,稍微精简了一些):

基本上,IDobjet是一个自动编号,“TitreObjet”和“ContenuObjet”是备忘录字段。
虽然IDobjet始终显示正确的数字,但当查询太长,达到某个阈值时,备注字段开始显示中文。我尝试在查询中使用一个文本字段,但效果很好。

最好的方法是创建一个临时表(这是一种特殊类型的表-请参阅),其中包含一个
ID

生成查询时,您可以将您的
ID
插入此表并加入到该表中,而不是使用列表中的
,如下所示:

select a.*
from table a
INNER JOIN temp_table b ON a.ID = b.ID

这是第一次。。。我从来没有听说过它被称为“数据库”。但是你最好使用一个临时表并加入它,而不是在
params中列出4000个
。你可以提出多个请求,每个请求的长度不超过4000,然后得到
UNION
结果。@RomanBK我对你的问题做了一些修改。我不清楚的是:“查询结果的备注字段”是什么?您选择的数据是什么(SQL语句的第一部分)?请多多关照!我将使用临时表。有时我觉得访问服务选项真的无法处理,这让人厌烦…@Jandogen我编辑了这个问题,我希望它能帮助其他人!谢谢你的帮助。抱歉花了这么长时间。
select a.*
from table a
INNER JOIN temp_table b ON a.ID = b.ID