访问VBA“记录太大”

时间:2018-09-20 14:32:05

标签: excel vba ms-access

我在网上没有找到此问题的答案:也许是Access错误?

我有Windows 10和Access2016。我有102个字段和40条记录。每个记录有14个长文本字段。长文本条目均不超过200个字符。有问题的记录设置为“长文本”(在早期的Access版本中为“备注”)。

我编写并在Access 2010中使用了5年的软件导入了Excel Workbook。现在,我将同一软件与Access 2016一起使用,并已开始获取此处描述的错误。这是我使用Access 2016设置的第四个数据库,这是我第一次看到此问题。

当我尝试在记录的“长文本”字段中的一个或两个单元格中键入条目时,生成了一条错误消息,提示“记录太大”。其他记录上的相同字段按预期方式工作。仅该给定记录上的单元格正在生成错误。就像我说的那样,我从未在其他版本的Access中看到此错误。

我已执行1)“压缩和修复”,2)将表导出到新表,3)将表导出到Excel,并使用新的Access记录手动剪切和粘贴所有102条记录。项目编号3)在大多数时间都有效,工作1)和2)从未解决问题。

导致我寻求帮助的事件是这次,执行上面的步骤3)中的新记录,我有一个单元格再次生成“记录太大”错误。我注意到我要从中复制的Excel入口单元有几个分号:我删除了它们,试图将其剪切并粘贴到Access Cell上没有成功。我尝试在单元格中键入条目,而不是粘贴它并得到错误。

对于这个问题的实质,我确实感到茫然,我需要一些帮助。有没有人遇到过这个问题?

3 个答案:

答案 0 :(得分:1)

  

我有 102个字段和40条记录。每个记录有14个长文本字段。长文本条目均不超过200个字符。

昨天,我将重构该架构。这正是精确的一对一关系。将列的子集移到另一个表中,将PK与PK相关联。 102列太多的顾虑塞到一个表中。分解-不管出现“记录太大”错误。

那就是说,如果所有长文本条目都不包含超过200个字符,那么为什么它们首先是长文本?我将它们做成可变长度的字符列(在SQL Server上为nvarchar,不确定Access),可能有255个字符。

答案 1 :(得分:0)

感谢您的所有投入。我无法发布代码。但是,如果其他人也陷入了同样的困境,我可以按以下所述解决问题。

  1. 将违规表导出到Excel,保留格式。
  2. 将有问题的表导出到Access,相同的数据库,保留定义,不导出数据。
  3. 将空白(新)表中的几个(有问题的)字段从“短文本”更改为“长文本”(备注)。
  4. 将在步骤1中创建的导出的Excel工作表追加到在步骤2中创建的空白表中。

这些步骤解决了我的问题,使我摆脱了痛苦的困境。谢谢大家的帮助和想法。 v / r, 约翰尼

答案 2 :(得分:0)

您有机会在Microsoft Access中发现与Excel导入相关的错误。

重新创建表以解决缺陷以正确获取其内部数据。

问题出在从Excel导入时自动创建的较大表中。即使其字段的长度或计数没有超过任何限制,您仍然可以开始收到错误消息“ Record too Large”。执行紧凑和修复操作不能解决此问题。

因此,如果您确定数据结构没有超出Access限制,然后使用相同的字段及其长度重新创建表,则错误消失了。

作为证明,当前我的数据库中有两个表,两个表的内部结构相同。导入创建的报告“记录太大”,而我手动创建的(通过在设计视图中复制粘贴字段)报告。

所以我们可以说从Excel导入时,Access 2016中有一个特定的Access错误,该错误到今天(2018-10-17)尚未得到纠正。按照上述方法解决。