从 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 开始