MS Access:SELECT INTO NewTable剪切长文本

时间:2008-12-17 07:27:01

标签: ms-access

当我使用时(在MS Access 2003 SP3中):

SELECT * INTO NewTable FROM SomeQuery;

MEMO字段转换为TEXT字段(限制为255个字符),因此可以剪切较长的文本。

查询本身的输出很好,没有被截断;文本仅在创建的新表中剪切。

更新:我设法将问题集中在我的查询中的IIF语句上。 当我删除I​​IF时,新表包含MEMO字段,但是对于IIF,相同的字段显示为TEXT。奇怪的是,即使在使用IIF时,查询输出也会显示完整的长字符串。只有在“复制”到新表时(通过INTO语句),文本才会被删除。

您知道IIF可能对MEMO字段造成的任何问题吗?

感谢您的回答。

3 个答案:

答案 0 :(得分:3)

这里有current workarounds,用于避免任何截断备忘录字段。

在您的情况下,这可能是查询的属性表的结果,包括“set Unique”值为“是”(强制比较备注字段,触发截断)或字段的“格式”属性,例如强制以大写(>)或小写(<)显示。


您使用什么访问权限,以及将文档保存到哪种格式?

在Access 2000兼容格式中,单元格为Excel5.0/95 format:最多255个字符

你有没有其他(非备忘录)字段可以尝试选择冗长的值,只是为了看它是否也被截断了?


如果输出正常,但新表中的导出会截断备注字段,您可以查看以下内容:

In the export dialog under advanced,即使看起来只能包含名称,如果您非常仔细地点击以展开未显示的列,您可以将数据类型更改为备忘录。

答案 1 :(得分:1)

我刚刚在A2K3中测试了一个make表并附加了一个备忘录字段。我可以毫不费力地将完整数据附加到备忘录字段中。

也许您可以发布用于填充表格的查询的SQL。如果你正在对可以做到的备注字段进行排序(或分组),因为在备忘录字段上排序应该将它们截断为255个字符(尽管在测试中我只是在A2K3 SP3上运行所有最新的SP3后补丁,仅仅排序不会截断,但GROUP BY会截断。

另一个问题是,通常不建议在生产应用中使用Make Table查询。任何反复发生的事情,你为它编程的确应该附加到预定义的表,而不是替换现有的表。首先,预定义的表可以在其上定义索引,这使得在填充后使用它更有效。当然,您必须在附加新数据之前删除现有记录,但在索引方面的好处是相当大的。并且,是的,您可以在每次运行Make Table查询时重新定义索引,但是,如果删除现有数据太麻烦,甚至 more 工作都不能将索引添加到新创建的表?

我几乎没有使用Make Table查询,除非我正在操作我正在为其他目的进行按摩的数据。并不总是可以预测您最终会在目标表中使用哪种数据类型,因为它部分依赖于源表中的数据。仅这一点就不建议在大多数情况下使用它们。

答案 2 :(得分:0)

2003年SP3臭名昭着,可能与此有关。有一个修补程序:

http://support.microsoft.com/default.aspx/kb/945674

相关问题