【问题标题】:Unparsable error when importing excel data to Microsoft Access将 Excel 数据导入 Microsoft Access 时出现无法解析的错误
【发布时间】:2015-11-20 19:44:18
【问题描述】:

正在将数据从 excel 文件导入 Microsoft Access (2007-2010),导入进展顺利,能够正确选中或取消选中相应的复选框以及其他没有离散数据填充的字段,因为它们应该.

但是,在 Access 数据库中,我们有几列来自选择列表(一个表引用另一个表以了解可用选项),以将选项限制为填写表格的人。一些选择列表是单选的,而另一些则是多选的。当导入运行时,对于那些有选择列表的列,这些列会出现“无法解析的记录”错误,并且没有输入数据。即使雇主与其中一个选项完美匹配,也会发生此错误。因此,必须进行手动输入。在不更改选择列表或表单配置方式的情况下,是否可以解决此错误?

我找到了这个,但希望有办法解决这个问题,以节省一些非常繁琐的手动数据输入。 https://community.spiceworks.com/topic/287861-getting-unparsable-record-when-importing-to-access-2010

【问题讨论】:

  • 当您说选择列表字段时,听起来您可能正在描述 Access 查找字段。如果是这种情况,则字段中实际包含的数据与 DataSheet 视图中的表显示的数据不同。存储的值和显示的值甚至可能是不同的数据类型……例如,该字段存储员工编号但显示员工姓名。如果您有类似的情况,则在尝试将文本值存储在需要数字的字段中时会出错。如果尝试导入“多值”字段,情况会更加复杂。
  • 你描述的是它是如何配置的,有没有办法在给定配置的情况下导入数据,或者手动输入是我唯一的选择?

标签: excel ms-access ms-access-2010


【解决方案1】:

我想我理解你的问题。

您的 Access 表(“table1”)有一个名为“FK1”的字段,用于表单上的单个选择组合框。这可能具有 Long 的数值数据类型。

存储在 FK1 字段中的数字包含另一个表(“table2”)中的值,并且是该表的主键。

当您将数据从 excel 加载到 table1 时,您尝试加载到字段 FK1 的 excel 列中的值必须是数字而不是文本。

如果不是数字,则需要将文本转换为数字。

为此,您需要: 1. 获取 table2 中的数据并将其添加到电子表格的新工作表中。 2.在现有的excel表格中新增一列,使用VLOOKUP公式将所有文本转换为数字。

然后加载这些数字。 (您显然需要删除具有文本值的列)

关于多选组合框,这是一个类似的问题,但更难解决。这取决于您的 excel 数据的格式!

================================================ ===============

第 2 部分。提取具有多个值的单元格。

这里有一些想法:

  1. this page 上查看答案#6

哪个使用 VBA 并会帮助你。

在阅读本文之前,我的想法是这样的:

  1. 您将所有数据从 excel 加载到您的访问表中,多值列除外

然后您通过

加载多值列
  1. 使用文本到列将单个单元格中的值拆分为多列。

  2. 然后您需要对数据进行规范化。您可以使用 MS powerquery 插件来执行此操作 - powerquery 将此称为旋转数据。我做的一个 youtube 视频可能会帮助你看到 here

  3. 然后使用插入语句插入多值项(可能使用 VBA)

注意,需要规范化的数据才能访问主键

这个链接也很有用How to insert data into a multi valued field

请注意,在 excel 中处理数据的好处是您可以使用 powerpivot 对其进行规范化。如果您将所有数据加载到访问中(如另一个答案中所建议的那样),您将需要编写 VBA 来对其进行规范化——这对您来说可能很棘手。但是,使用访问中的数据也可以。您只需将所有 excel 数据加载到临时表中。多值列将作为文本存储在一列中。您使用 VBA 来处理这些值。

【讨论】:

  • 谢谢,单选工作。您如何建议在 excel 文件中设置数据以正确导入多选?假设查找表是,1 AAA 2 BBB 3 CCC 4 DDD 5 EEE 6 FFF 7 其他
  • 这会很困难。 excel一列有多少行有多个值?
  • 另外,一个单元格中通常有多少个值,它们之间是否有分隔符,如“COMMA”?我假设它们是可以在另一个表中找到的文本值。
  • 请参阅第 2 部分。我希望这会有所帮助。请将此标记为答案。请注意,这涉及大量工作,因此如果您没有大量数据,则可以选择手动进行。
  • 附言。如果您以前没有使用过 PowerQuery,我建议您观看第 4 点中的视频参考。它可以方便 UBER。
【解决方案2】:

一般来说,我发现将 Excel 数据导入临时表最容易。然后,您可以在 Access 中运行查询以验证值并链接查找。这一切都可以通过 VBA 进行协调,以便之后清理临时表。

【讨论】:

  • 本。您是否有任何示例 VBA 代码来提取 MV 数据项?我想看看。
猜你喜欢
  • 2013-05-16
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 2018-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多