从 Excel 导入 Access 2013 中的多值字段

Posted

技术标签:

【中文标题】从 Excel 导入 Access 2013 中的多值字段【英文标题】:Importing from Excel to multivalued field in Access 2013 【发布时间】:2015-07-17 12:26:37 【问题描述】:

我在TaskTbl 中有一个名为EmployeeID 的多值字段。 我在 Excel 文件中有大约 800 个任务,其中数据如下所示

TaskID | Task | EmployeeID

1      |aa    | 1,4

2      |ab    | 2,3

3      |ac    | 1,2

尝试在 Access 2013 中使用 Excel 导入导入数据,但出现错误。 但是,如果我在访问中手动插入值并将数据导出到 Excel,则数据的格式完全相同。哪里出错了?

我在这里搜索过,也在其他一些表单上搜索过,我在 2008 年的一个旧问题中得到了答案,在 Office 2007 中,您无法导入多值字段。

我想知道是否有一种方法可以在不使用 VBA 的情况下导入,因为我不熟悉 VBA。

提前致谢

【问题讨论】:

【参考方案1】:

这取决于您如何导入它。由于值中有逗号,因此您必须将其作为字符串/文本导入。当您试图弄清楚哪个员工负责什么任务时,这会出现问题。

您的任务中是否有超过 2 名员工?

我的猜测是您正在尝试跟踪谁对给定任务负责。

如果您有一个跟踪任务 ID 和 EmployeeID 的分配任务表,您的数据库设计会更好。

这将是任务和分配给表之间的 1:Many 关系

例如, tblAssignedTasks [AssignedTaskID], [TaskID], [EmployeeID] 1, 1, 1 2, 1, 4 3, 2, 2 4, 2, 3 5, 3, 1 5, 3, 2

根据您的源数据的设置方式,这需要一些工作才能进入正确的数据库格式。您首先必须分离出您的值,然后将它们列成行。

此公式将提取第一个员工: =LEFT(C2,FIND(",",C2)-1)

这个公式将提取第二个员工: =MID(C2,FIND(",",C2)+1,LEN(C2))

如果你有两个以上,那将是不同的设计。

【讨论】:

谢谢,希望有一种直接导入的方法,可以试试你的方法。

以上是关于从 Excel 导入 Access 2013 中的多值字段的主要内容,如果未能解决你的问题,请参考以下文章

通过 VBA 将查询从 Access 导入 Excel 并删除单个单元格

将 Excel 中的动态和静态范围导入到 MS-Access 中,而不是从单元格 A1 开始

Access 2013 导入类型转换错误处理空白

根据参数从 Access 表导入 Excel

在 C# 中以编程方式从 Excel 文件中大量导入数据到 Access

从 Excel 导入以访问密钥冲突和相同的格式