Excel 访问VBA“;“记录太大”;

Excel 访问VBA“;“记录太大”;,excel,vba,ms-access,Excel,Vba,Ms Access,我还没有在网上找到这个问题的答案:可能是访问错误 我有Windows 10和Access 2016。我有102个字段和40条记录。每条记录有14个长文本字段。所有长文本条目都不包含超过200个字符。有问题的记录被设置为“长文本”(在早期Access版本中是“备忘录”) 我用Access 2010编写并使用了5年的软件导入了Excel工作簿。现在,我在Access 2016中使用了相同的软件,并开始得到这里描述的错误。这是我使用Access 2016设置的第四个db,也是我第一次看到这个问题 当我

我还没有在网上找到这个问题的答案:可能是访问错误

我有Windows 10和Access 2016。我有102个字段和40条记录。每条记录有14个长文本字段。所有长文本条目都不包含超过200个字符。有问题的记录被设置为“长文本”(在早期Access版本中是“备忘录”)

我用Access 2010编写并使用了5年的软件导入了Excel工作簿。现在,我在Access 2016中使用了相同的软件,并开始得到这里描述的错误。这是我使用Access 2016设置的第四个db,也是我第一次看到这个问题

当我试图在记录的“长文本”字段中的一个或两个单元格中键入条目时,生成了一个错误,称“记录太大”。其他记录上的同一字段按预期工作。只有给定记录上的单元格正在生成错误。正如我所说,我从未在Access的其他版本中看到过这种错误

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

导致我寻求帮助的原因是,这一次,在执行上述步骤3)的过程中,我有一个单元格使用新记录再次生成“记录太大”错误。我注意到Excel中复制的输入单元格有几个分号:我删除了它们,尝试剪切并粘贴到Access单元格,但没有成功。我尝试在单元格中键入条目,而不是粘贴条目,结果出现了错误

我真的不知道这个问题是什么,我需要一些帮助。有没有人经历过这个问题

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

昨天,我重构了模式。这正是一对一关系的目的。将列的子集移动到另一个表中,将PK与PK关联起来。102列太多的关注点塞进了一个表中。打破它-不管“记录太大”错误


也就是说,如果长文本条目中没有一个包含超过200个字符,那么为什么它们首先是长文本呢?我会让它们成为可变长度的字符列(在SQL Server上是
nvarchar
,不确定访问权限),容量大约为255个字符。

谢谢您的所有输入。我不能发布代码。然而,如果其他人陷入同样的困境,我能够找到一个解决方案,如下所述

  • 将有问题的表导出到Excel,保留格式
  • 导出有问题的表以访问,相同的数据库,保留定义,不导出数据
  • 将空白(新)表中的几个(违规)字段从“短文本”改为“长文本”(备忘录)。
  • 附加在步骤1中创建的导出Excel工作表。进入步骤2中创建的空白表。
  • 这些步骤解决了我的问题,使我摆脱了痛苦的困境。谢谢大家的帮助和想法。 v/r, Johnny

    您可能在Microsoft Access中发现Excel导入相关的错误。 重新创建表以解决缺陷,从而正确获取其内部数据

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

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

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


    因此,我们可以说,从Excel导入时,存在一个特定的Access错误,截至今天(2018-10-17)Access 2016尚未纠正。按上述方法进行操作。

    您能显示导入代码吗?何时出现错误?在打开的表中编辑或运行代码?请参阅此SO post:MS Access的短文本最大长度为255个字符,并且可以在
    CREATE TABLE
    语句中使用
    VARCHAR
    。此解决方法不太理想,我必须发表评论以警告此帖子的未来读者。Access是一个数据库,其模式不应与Excel之类的应用程序来回交换。真正考虑我们的“输入”并更新数据库设计。如果不允许,请与上级坐下来。这将为你省去更多的麻烦。祝你好运