将 excel 数据导入 Microsoft Access 时出现无法解析的错误
Unparsable error when importing excel data to Microsoft Access
正在将数据从 excel 文件导入 Microsoft Access (2007-2010),导入过程很顺利,能够正确选中或取消选中相应的复选框以及其他没有的字段离散数据按应有的方式填充。
但是,在 Access 数据库中,我们有一些来自选择列表的列(一个 table 引用另一个 table 以了解可用的选项),以将选项限制为填写表格的人。一些选择列表是单个 select 而其他的是多个 select。当导入运行时,对于那些有选择列表的列,这些列会出现“Unparsable Record”错误,并且没有输入任何数据。即使雇主与其中一个选项完美匹配,也会出现此错误。因此,必须进行手动输入。在不更改选择列表或表单配置方式的情况下是否有解决此错误的方法?
我找到了这个,但希望可以采取一些措施来解决这个问题,以节省一些非常繁琐的手动数据输入。 https://community.spiceworks.com/topic/287861-getting-unparsable-record-when-importing-to-access-2010
我想我明白你的问题了。
您的访问 table ("table1") 有一个名为 "FK1" 的字段,用于表单上的单个 select 组合框。这可能具有 Long 的数字数据类型。
FK1字段中存储的数字包含另一个table("table2")中的值,并且是此table的主键。
当您将数据从 excel 加载到 table1 时,您尝试加载到字段 FK1 的 excel 列中的值必须是数字而不是文本。
如果不是数字,则需要将文本转换为数字。
为此,您需要:
1. 获取 table2 中的数据并将其添加到您的传播 sheet 的新 sheet 中。
2. 在现有的excel table 中添加一个新列并使用VLOOKUP 公式将所有文本转换为数字。
然后加载这些数字。 (您显然需要删除具有文本值的列)
关于多个select组合框,这是一个类似的问题,但更难解决。这取决于您的 excel 数据的格式!
============================================= ================
PART 2. 提取其中包含多个值的单元格。
这里有一些想法:
- 请参阅 this page
上的答案 #6
它使用 VBA 并且会帮助你。
在读这篇文章之前,我的想法是这样的:
- 您将 excel 中的所有数据加载到访问 table 中,多值列除外
然后您通过
加载多值列
使用文本分栏将单个单元格中的值拆分为多列。
然后您需要规范化数据。您可以使用 MS powerquery 插件来执行此操作 - powerquery 将此称为旋转数据。我制作的一个 youtube 视频可能会帮助你看到 here
然后使用插入语句插入多值项(可能使用 VBA)
请注意,需要规范化数据才能访问主键
这个link也有用How to insert data into a multi valued field
请注意,在 excel 中处理数据的好处是您可以使用 powerpivot 对其进行标准化。如果您将所有数据加载到访问中(如另一个答案中所建议的),您将需要编写 VBA 来对其进行规范化——这对您来说可能很棘手。但是,使用访问中的数据也可以。您只需将所有 excel 数据加载到临时 table 中。多值列将作为文本存储在一列中。您使用 VBA 来处理这些值。
一般来说,我发现将 Excel 数据导入临时 table 最简单。然后,您可以 运行 Access 中的查询来验证值和 link 查找。这一切都可以从 VBA 进行协调,以便之后清理温度 table。
正在将数据从 excel 文件导入 Microsoft Access (2007-2010),导入过程很顺利,能够正确选中或取消选中相应的复选框以及其他没有的字段离散数据按应有的方式填充。
但是,在 Access 数据库中,我们有一些来自选择列表的列(一个 table 引用另一个 table 以了解可用的选项),以将选项限制为填写表格的人。一些选择列表是单个 select 而其他的是多个 select。当导入运行时,对于那些有选择列表的列,这些列会出现“Unparsable Record”错误,并且没有输入任何数据。即使雇主与其中一个选项完美匹配,也会出现此错误。因此,必须进行手动输入。在不更改选择列表或表单配置方式的情况下是否有解决此错误的方法?
我找到了这个,但希望可以采取一些措施来解决这个问题,以节省一些非常繁琐的手动数据输入。 https://community.spiceworks.com/topic/287861-getting-unparsable-record-when-importing-to-access-2010
我想我明白你的问题了。
您的访问 table ("table1") 有一个名为 "FK1" 的字段,用于表单上的单个 select 组合框。这可能具有 Long 的数字数据类型。
FK1字段中存储的数字包含另一个table("table2")中的值,并且是此table的主键。
当您将数据从 excel 加载到 table1 时,您尝试加载到字段 FK1 的 excel 列中的值必须是数字而不是文本。
如果不是数字,则需要将文本转换为数字。
为此,您需要: 1. 获取 table2 中的数据并将其添加到您的传播 sheet 的新 sheet 中。 2. 在现有的excel table 中添加一个新列并使用VLOOKUP 公式将所有文本转换为数字。
然后加载这些数字。 (您显然需要删除具有文本值的列)
关于多个select组合框,这是一个类似的问题,但更难解决。这取决于您的 excel 数据的格式!
============================================= ================
PART 2. 提取其中包含多个值的单元格。
这里有一些想法:
- 请参阅 this page 上的答案 #6
它使用 VBA 并且会帮助你。
在读这篇文章之前,我的想法是这样的:
- 您将 excel 中的所有数据加载到访问 table 中,多值列除外
然后您通过
加载多值列使用文本分栏将单个单元格中的值拆分为多列。
然后您需要规范化数据。您可以使用 MS powerquery 插件来执行此操作 - powerquery 将此称为旋转数据。我制作的一个 youtube 视频可能会帮助你看到 here
然后使用插入语句插入多值项(可能使用 VBA)
请注意,需要规范化数据才能访问主键
这个link也有用How to insert data into a multi valued field
请注意,在 excel 中处理数据的好处是您可以使用 powerpivot 对其进行标准化。如果您将所有数据加载到访问中(如另一个答案中所建议的),您将需要编写 VBA 来对其进行规范化——这对您来说可能很棘手。但是,使用访问中的数据也可以。您只需将所有 excel 数据加载到临时 table 中。多值列将作为文本存储在一列中。您使用 VBA 来处理这些值。
一般来说,我发现将 Excel 数据导入临时 table 最简单。然后,您可以 运行 Access 中的查询来验证值和 link 查找。这一切都可以从 VBA 进行协调,以便之后清理温度 table。