导入或链接 Excel 工作簿中的数据

Access > 连接到数据源

 

导入或链接 Excel 工作簿中的数据

blueup_CLV全部显示

bluedrop_CLV全部隐藏

您可以用多种方法将 Excel 工作簿中的数据添加到 Access 2010 中:将数据从打开的工作表复制并粘贴到 Access 数据表中;将工作表导入新表或现有的表中;或者从 Access 数据库链接到工作表。

本主题详细说明了如何从 Access 导入或链接 Excel 数据。

 注释 

如果正在 Web 浏览器中运行 Web 数据库,则无法导入数据。如果要将数据导入 Web 数据库,必须先使用 Access 打开 Web 数据库。
链接表与 Web 数据库不兼容;若要在 Web 数据库中使用外部数据,则必须导入该数据,而不是链接到该数据。

有关 Web 数据库的详细信息,请参阅文章生成可在 WEB 上共享的数据库

您要做什么?


hrefIcon_ZA10069439 了解导入来自 EXCEL 的数据

hrefIcon_ZA10069439 导入来自 EXCEL 的数据

hrefIcon_ZA10069439 丢失值或错误值的疑难解答

hrefIcon_ZA10069439 链接 EXCEL 中的数据

hrefIcon_ZA10069439 有关链接表中 #NUM! 及其他错误值的疑难解答


了解导入来自 Excel 的数据

如果您要将一个或多个 Excel 工作表中的某些或全部数据存储在 Access 中,应将工作表的内容导入一个新建的或现有的 Access 数据库。在导入数据时,Access 会在新表或现有的表中创建数据副本,而不更改源 Excel 工作表。

需要将 EXCEL 数据导入 ACCESS 的常见情况

您多数时间都在使用 Excel,但以后准备使用 Access 处理这些数据。您想将 Excel 工作表的数据移到一个或多个新建的 Access 数据库中。
您所在的部门或工作组使用 Access,但有时您会收到 Excel 格式的数据,而这些数据又必须合并到 Access 数据库中。您想在收到 Excel 工作表时将它们导入数据库中。
您使用 Access 管理数据,但您所在工作组的其他人员发来的周报是 Excel 工作簿。您想简化导入过程,以确保数据能在每周的特定时间导入数据库中。

如果您是第一次导入来自 EXCEL 的数据

无法将 Excel 工作簿另存为 Access 数据库。Excel 没有提供利用 Excel 数据创建 Access 数据库的功能。
当您在 Access 中打开 Excel 工作簿(在“文件”->“打开”对话框中,将“文件类型”列表框更改为“Microsoft Office Excel 文件”,然后选择所需文件)时,Access 会创建一个指向该工作簿的链接,而不导入该工作簿的数据。链接工作簿与在数据库中导入工作表从根本上说是不同的。有关链接的详细信息,请参阅下文中的链接 EXCEL 中的数据一节。

TopPageIcon_CLV 返回页首

导入来自 Excel 的数据

本节中的步骤将解释如何准备和运行导入操作以及如何将导入设置另存为规格以便以后再次使用。执行操作时,请记住,一次只能导入一个工作表的数据,而不能一次导入整个工作簿中的所有数据。

准备工作表

1.找到源文件并选择要导入 Access 中的数据所在的工作表。如果只想导入工作表的部分数据,则可以定义一个命名区域,其中只包含要导入的单元格。

blueup_CLV如何在 EXCEL 中创建命名区域?

1.切换到 Excel 并打开要导入的工作表。
2.选择要导入的数据所在的单元格区域。
3.右键单击选定的区域,然后单击“命名单元格区域”“定义名称”
4.“新名称”对话框的“名称”框中,为该区域指定一个名称,然后单击“确定”

请记住,导入操作一次只能导入一个工作表。要导入来自多个工作表的数据,请对每个工作表重复执行导入操作。

2.查看源数据,并按下表中的说明执行操作。

元素

说明

列数

要导入的源列数量不能超过 255,原因是 Access 在一个表中支持的最大字段数为 255。

忽略行和列

在源工作表或命名区域中只包含要导入的行和列是一个好的做法。

 您不能在导入操作过程中筛选或忽略行。

 如果选择将数据添加到现有的表中,则不能在导入操作过程中忽略列。

表格形式

确保单元格采用表格形式。如果工作表和命名区域中包含合并单元格,单元格的内容将放在与最左列对应的字段中,其他字段留空。

空白行、列和单元格

删除工作表或区域中所有不必要的空白行列。如果工作表或区域包含空白单元格,请尝试在这些单元格中添加丢失的数据。如果准备将记录追加到现有的表中,请确保表中的对应字段可接受空(丢失或未知)值。如果一个字段的“必填字段”属性设置为“否”,并且它的“有效性规则”属性设置允许空值,则该字段将接受空值。

错误值

如果工作表或区域中的一个或多个单元格包含错误值(如 #NUM#DIV),请先更正这些错误值,再开始导入操作。如果源工作表或区域包含错误值,Access 将在表中的对应字段内放置空值。有关改正这些错误的方法的详细信息,请参阅本文后面的丢失值或错误值的疑难解答一节。

数据类型

为了避免在导入过程中出现错误,请确保各个源列中每一行所包含的数据类型都是相同的。Access 会扫描前八个源行,以确定表中字段的数据类型。我们极力建议您确保前八个源行的任何列内都没有混合不同数据类型的值。否则,Access 可能无法向该列分配正确的数据类型。

此外,最好在开始导入操作前,先为 Excel 中的每个源列设置格式并为每一列指定特定的数据格式,这不失为一个好做法。如果列中存在数据类型不同的值,我们极力建议您设置格式。例如,工作表中的 FlightNo 列可能同时包含数字值和文本值(如 871、AA90 和 171)。为了避免丢失值或错误值,请执行以下操作:

1.右键单击该列标题,然后单击“设置单元格格式”
2.“数字”选项卡的“类别”下,选择一种格式。对于 FlightNo 列,您可能需要选择“文本”
3.单击“确定”

如果为源列设置了格式,但源列中第八行以后的行中仍包含不同数据类型的值,则导入操作还是可能会跳过值或错误地转换值。有关疑难解答的信息,请参阅“丢失值或错误值的疑难解答”一节的内容。

第一行

如果工作表或命名区域的第一行包含列名,则可指定 Access 在导入操作中将第一行的数据视为字段名称。如果源工作表或区域不包含列名,最好在开始导入操作前将它们添加到源中。

 注释    如果准备将数据追加到现有的表中,请确保每一列的名称与对应字段的名称完全匹配。如果列名与表中对应字段的名称不同,导入操作将失败。要查看字段的名称,请在 Access 的设计视图中打开表。

1.关闭源工作簿(如果它是打开的)。源文件保持打开状态可能会导致在导入操作过程中出现数据转换错误。

 

准备目标数据库

1.打开要在其中存储所导入数据的 Access 数据库。确保该数据库不是只读的,并且您具有更改该数据库的权限。

- 或 -

如果您不想在任何现有的数据库中存储数据,请创建一个空数据库。为此,请执行下列操作:

依次单击“文件”选项卡、“新建”“空白数据库”“空白 Web 数据库”

 注释    有关 Web 数据库的详细信息,请参阅文章生成可在 WEB 上共享的数据库

2.在开始导入操作之前,请先决定是要将数据存储在新表中还是现有的表中。

创建新表  如果选择在新表中存储数据,Access 就会创建一个表,并将导入的数据添加到该表。如果已经存在使用指定名称的表,Access 就会用导入的数据覆盖该表的内容。

追加到现有的表中  如果选择将数据添加到现有表中,Excel 工作表中的各行将追加到指定的表中。

请记住,追加操作过程中的大多数失败都是因为源数据与目标表的结构及字段设置不匹配。要避免这一问题,请在设计视图中打开目标表并查看以下各项:

第一行  如果源工作表或命名区域的第一行不包含列标题,请确保源工作表中的每一列的位置和数据类型与表中对应字段的位置和数据类型匹配。如果第一行包含列标题,列顺序与字段顺序不必匹配,但每一列的名称及数据类型必须与其对应字段的名称及数据类型完全匹配。
丢失字段或多余的字段  如果源工作表中一个或多个字段不在目标表中,请在开始导入操作之前添加它们。不过,如果表中包含了源工作表中不存在的字段,而这些字段接受的是空值,则不需要从表中删除这些字段。

提示  如果一个字段的“必填字段”属性设置为“否”,并且它的“有效性规则”属性设置允许空值,则该字段将接受空值。

主键  如果表中包含主键字段,那么源工作表或区域中必须有一列包含与主键字段兼容的值,并且导入的键值必须是唯一的。如果目标表中现已存在所导入记录中包含的主键值,导入操作将显示错误消息。
索引字段  如果表中字段的“索引”属性设为“是(不允许重复)”,那么源工作表或区域中的对应列必须包含唯一值。

转至下面的步骤以运行导入操作。

开始导入操作

1.“外部数据”选项卡上的“导入并链接”组中,单击“Excel”

 注释    除非打开了数据库,否则“外部数据”选项卡不可用。

2.“获取外部数据 - Excel 电子表格”对话框的“文件名”框中,指定要导入的数据所在的 Excel 文件的文件名。

- 或 -

单击“浏览”并使用“文件打开”对话框以找到想要导入的文件。

3.指定所导入数据的存储方式。

要将数据存储在新表中,请选择“将源数据导入当前数据库的新表中”。稍后会提示您命名该表。

若要将数据追加到现有表中,请选择“向表中追加一份记录的副本”,然后从下拉列表中选择表。如果数据库不包含任何表,则此选项不可用。

 注释    若要通过创建链接表来链接数据源,请参阅下文中的链接 EXCEL 中的数据一节。

4.单击“确定”

“导入电子表格向导”将会启动,并引导您完成整个导入过程。继续执行下一组步骤。

使用“导入电子表格向导”

1.在向导的第一页上,选择要导入的数据所在的工作表,然后单击“下一步”
2.在向导的第二页,单击“显示工作表”“显示命名区域”,选择要导入的工作表或命名区域,然后单击“下一步”
3.如果源工作表或区域的第一行包含字段名称,则选择“第一行包含列标题”,然后单击“下一步”

如果将数据导入新表中,Access 将使用这些列标题为表中的字段命名。您可在导入操作过程中或导入操作完成后更改这些名称。如果将数据追加到现有的表中,请确保源工作表中的列标题完全与目标表中的字段名称相匹配。

如果将数据追加到现有的表中,请直接转到第 6 步。如果将数据添加到新表中,请执行其余步骤。

4.该向导会提示您查看字段属性。单击该页下半部分中的某一列即可显示对应字段的属性。或者,执行下列操作之一:
如果需要,请检查并更改目标字段的名称和数据类型。

Access 会检查每一列的前八行,以建议对应字段的数据类型。如果工作表中某一列的前八行包含不同类型的值(如文本和数字),向导会建议使用与列中所有值都兼容的数据类型(最常用的是文本数据类型)。虽然您可以选择其他数据类型,但请记住,导入过程中将忽略或错误地转换与所选数据类型不兼容的值。有关如何更正丢失值或错误值的详细信息,请参阅下文中的丢失值或错误值的疑难解答一节。

要在字段上创建索引,请将“索引”设置为“是”
要完全跳过某个源列,请选中“不导入字段(跳过)”复选框。

选择完选项后,单击“下一步”

5.在向导的下一个屏幕中,指定表的主键。如果选择“让 Access 添加主键”,则 Access 会将“自动编号”字段添加为目标表中的第一个字段,并且用从 1 开始的唯一 ID 值自动填充它。单击“下一步”
6.在向导的最后一个屏幕中,指定目标表的名称。在“导入到表”框中,键入表的名称。如果该表已存在,Access 会显示一条提示信息,询问您是否要覆盖表中现有的内容。单击“是”可继续操作,单击“否”可为目标表指定其他名称。然后单击“完成”以导入数据。

如果 Access 能够导入某些或全部数据,该向导会显示一页来指明导入操作的状态。另外,您可以将该操作的详细信息保存为规格,以备将来使用;而如果导入操作完全失败,Access 就会显示错误消息“尝试导入文件时出错”。

7.单击“是”可保存操作的详细信息,以备将来使用。保存详细信息有助于您在以后重复执行该操作,而不必每次都逐步完成向导。

将导入设置另存为某种规格

1.“另存为”框中,键入导入规格的名称。您也可以选择在“说明”框中键入说明。
2.如果您要按固定时间间隔(如每周一次或每月一次)执行该操作,请选中“创建 Outlook 任务”复选框。这样将创建一个 Outlook 任务,以后您就可以通过该任务运行该规格。
3.单击“保存导入”

如果在步骤 2 中没有选中“创建 Outlook 任务”复选框,则此步骤到此结束。如果选中了该复选框,Access 将打开一个 Outlook 任务。此时,应继续执行步骤 4 和步骤 5。

 注释    如果没有安装 Outlook,Access 就会显示一条错误消息。如果 Outlook 配置不正确,“Outlook 启动向导”就会启动。请按向导中的说明配置 Outlook。

4.在 Outlook 中,检查并修改任务设置,如“截止日期”“提醒”

若要使任务定期发生,请单击“定期”并设置所需选项。

5.单击“保存并关闭”

运行保存的任务

1.在 Outlook 导航窗格中,单击“任务”,然后双击要运行的任务。
2.“任务”选项卡上的“Microsoft Access”组中,单击“运行导入”,然后单击“确定”进行确认。
3.在数据表视图中打开目标表。将表中的数据与源工作表进行比较,确保数据看起来是正确的。

如果发现某些数据丢失或不正确,请参阅下一节,了解疑难解答信息。

运行已保存的导入操作

1.“外部数据”选项卡上的“导入并链接”组中,单击“已保存的导入”
2.“管理数据任务”对话框中,单击要运行的已保存导入,然后单击“运行”

TopPageIcon_CLV 返回页首

丢失值或错误值的疑难解答

如果出现消息“尝试导入文件时出错”,说明导入操作完全失败;而如果导入操作显示一个对话框,提示您保存操作的详细信息,则说明该操作能够导入全部或部分数据。状态信息还会提到错误日志表的名称,在导入操作过程中发生的所有错误的说明都包含在这个错误日志表中。

要点  即使状态消息指明操作完全成功,您也应该查看表的内容和结构,确保它们看起来是正确的,之后才能使用该表。

在数据表视图中打开目标表,查看所有数据是否都已添加到表中。
在设计视图中打开该表,查看字段的数据类型及其他属性设置。

下表说明了更正丢失值或错误值时可以采取的步骤。

提示  在解决结果中出现的问题时,如果发现只是丢失几个值,则可将它们手动添加到表中。反过来,如果发现整列或大量的值都丢失或未正确导入,则应在源文件中更正问题。在更正完所有已知问题后,再重新执行导入操作。

问题

解决方案

图形元素

图形元素(如徽标、图表和图片)无法导入。请在完成导入操作后将它们手动添加到数据库中。

计算值

导入计算列或单元格的结果,但不导入基础公式。在导入操作过程中,您可以指定与公式结果兼容的数据类型,如“数字值”。

TRUE 或 FALSE 及 -1 或 0 值

如果源工作表或区域中的某一列只包含 TRUE 或 FALSE 值,Access 将为该列创建“是/否”字段并在该字段中插入 -1 或 0 值。不过,如果源工作表或区域中的某一列只包含 -1 或 0 值,Access 默认为该列创建数字字段。为避免这一问题,您可在导入操作过程中将该字段的数据类型更改为“是/否”。

多值字段

在将数据导入新表或将数据追加到现有表时,Access 不支持一个字段中包含多个值,即使源列包含由分号 (;) 分隔的值列表时也是如此。值列表将被视为单个值并放在文本字段中。

数据被截断

如果 Access 表中某一列的数据被截断,请尝试在数据表视图中增大该列的宽度。如果这样不能解决问题,说明 Excel 数字列中的数据过长,超出了 Access 中目标字段的字段大小。例如,Access 数据库中目标字段的“字段大小”属性可能设为“字节”,但源数据包含大于 255 的值。请更正源文件中的值,然后重试导入操作。

显示格式

您可能需要在设计视图中设置某些字段的“格式”属性,以确保值能在数据表视图中正确显示。例如:

“是/否”字段在导入操作完成后显示 -1 和 0。要解决这一问题,请在导入操作完成后,将该字段的格式属性设为“是/否”以显示复选框。
长日期和中日期在 Access 中可能显示为短日期。要解决这一问题,请在 Access 的设计视图中打开目标表,然后将日期字段的“格式”属性设为“长日期”或“中日期”。

 注释    如果源工作表包含 RTF 格式设置(如加粗、下划线、倾斜),则仅导入文本,而所有格式都将丢失。

重复值(键值冲突错误)

您要导入的记录可能会包含重复的值,它们不能存储在目标表的主键字段中,也不能存储在其“索引”属性设置为“是(不允许重复)”的字段中。请在源文件中删除重复的值,然后重试导入操作。

日期值相差 4 年

从 Excel 工作表中导入的日期字段可能与正确值相差 4 年。Excel for Windows 使用 1900 日期系统,即序列号范围从 1 到 65,380,相应的日期为 1900 年 1 月 1 日至 2078 年 12 月 31 日。但是,Excel for Macintosh 使用 1904 日期系统,即序列号范围为 0 到 63,918,相应的日期为 1904 年 1 月 1 日至 2078 年 12 月 31 日。

在导入数据之前,请更改 Excel 工作簿的日期系统;或在追加数据后,执行一个使用表达式 [date field name] + 1462 的更新查询,以更正日期。

空值

导入操作结束时可能出现一条错误消息,指明操作过程中删除或丢失了哪些数据;或者,在数据表视图中打开表时,您可能看到某些字段值为空。如果没有为 Excel 中的源列设置格式,或者前八个源行包含数据类型不同的值,则打开源工作表并执行以下操作:

为源列设置格式。
移动行,以使每一列的前八行包含数据类型相同的值。
在导入操作过程中,为每个字段选择适当的数据类型。如果数据类型不正确,那么在导入操作完成后,整列中可能都是空值或错误值。

上述步骤有助于尽可能降低出现空值的可能性。下表列出了仍会出现空值的情况:

所丢失值的类型...

导入的目标位置...

而目标字段类型是...

解决办法...

文本

新表

日期

将所有文本值替换为日期值,然后重试导入操作。

文本

现有的表

数字或日期

将所有文本值替换为与目标字段的数据类型匹配的值,然后重试导入操作。

日期值被替换为数字值

在以下情况下,您会看到似乎是随机出现的 5 位数数字而看不到实际日期值:

工作表中源列的前八行只包含数字值,但后面一些行包含日期值。这些日期值将被错误地转换。
源列前八行的某些行包含日期值,而您尝试将它们导入数字字段。这些日期值将被错误地转换。

要避免这一问题,请将源列中的日期值替换为数字值,然后重试导入操作。

有时,如果所含大部分值均为日期值的列也包含一些文本值,所有日期值似乎看起来都是 5 位数的随机数字。若要避免这一问题,请将文本值替换为日期值,然后重试导入操作。

数字值被替换为日期值

在以下情况下,您会看到似乎是随机出现的日期值而看不到实际数字值:

源列的前八行只包含日期值,但后面一些行包含数字值。这些数字值将被错误地转换。
源列前八行的某些行包含数字值,而您尝试将它们导入到日期字段中。这些数字值将被错误地转换。

要避免这一问题,请将源列中的数字值替换为日期值,然后重试导入操作。

另外,您可能需要在数据表视图中查看向导最后一页中提到的错误日志表。该表有三个字段:“错误”、“字段”和“行”。每一行都包含有关一个特定错误的信息,“错误”字段的内容应该有助于您解决问题。

blueup_CLV错误字符串和疑难解答提示的列表

错误

说明

字段截断

文件中的值对于该字段的“字段大小”属性设置而言太大。

类型转换失败

工作表中的值不是适合该字段的正确数据类型。该值在目标字段中可能已丢失或看起来不正确。有关如何解决此问题的详细信息,请参阅上一个表。

键值冲突

该记录的主键值是一个重复值,它在表中已经存在。

有效性规则失败

一个值违背了通过使用“有效性规则”属性为该字段或该表设置的规则。

必填字段中的空值

由于本字段的“必填字段”属性被设置为“是”,因此字段值不允许为 null。

“自动编号”字段中的空值

要导入的数据包含一个用户试图追加到“自动编号”字段的值。

不能正确识别的记录

文本值包含文本分隔符(通常为双引号)。当值中含有分隔字符时,该字符在文本文件中必须重复两次,例如:

4 1/2"" diameter


TopPageIcon_CLV 返回页首

链接 Excel 中的数据

通过将 Access 数据库链接到另一个程序的数据,您可以使用 Access 提供的查询和报表工具而不必维护数据库中 Excel 数据的副本。

在链接到 Excel 工作表或命名区域时,Access 会创建一个新表并链接到源单元格。在 Excel 中对源单元格所做的任何更改都会出现在链接的表中。不过,您不能在 Access 中编辑对应表的内容。如果要添加、编辑或删除数据,必须在源文件中进行更改。

需要从 ACCESS 中链接到 EXCEL 工作表的常见情况

通常,链接到 Excel 工作表(而不是导入)的原因如下:

您想继续在 Excel 工作表中保留数据,但要能够使用 Access 强大的查询和报表功能。
您所在的部门或工作组使用 Access,但需要处理的外部源数据位于 Excel 工作表中。您不想维护外部数据的副本,但要能够在 Access 中处理这些数据。

如果您是第一次链接到 EXCEL 工作表

不能从 Excel 中创建指向 Access 数据库的链接。
在链接到 Excel 文件时,Access 会创建一个新表,它通常称为链接表。该表显示源工作表或命名区域中的数据,但实际上不在数据库中存储数据。
不能将 Excel 数据链接到数据库中现有的表。这意味着,不能通过链接操作将数据追加到现有的表中。
一个数据库可以包含多个链接表。
在 Excel 中对数据所做的任何更改都自动反映到链接表中。不过,Access 中链接表的内容和结构是只读的。
在 Access 中打开 Excel 工作簿(在“打开”对话框中,将“文件类型”列表框更改为“Microsoft Excel”,然后选择所需文件)时,Access 会创建一个空白数据库,并自动启动“链接电子表格向导”。

准备 Excel 数据

1.找到 Excel 文件和要链接的数据所在的工作表或区域。如果不想链接整个工作表,请考虑定义一个命名区域,并在其中只包含要链接的单元格。

blueup_CLV如何在 EXCEL 中创建命名区域?

1.切换到 Excel 并显示要在其中定义命名区域的工作表。
2.选择要链接的数据所在的单元格区域。
3.右键单击选定的区域,然后单击“命名单元格区域”“定义名称”
4.“新名称”对话框的“名称”框中,为该区域指定一个名称,然后单击“确定”

请注意,链接操作一次只能链接一个工作表或区域。要链接工作簿中多个位置的数据,请为每个工作表或区域重复执行链接操作。

2.查看源数据,并按下表中的说明执行操作:

元素

说明

表格形式

确保单元格采用表格形式。如果区域中包含合并单元格,单元格的内容将放在与最左列对应的字段中,其他字段留空。

忽略行和列

您不能在链接操作过程中忽略源行和列。不过,在将它们导入 Access 后,可以通过在数据表视图中打开链接表来隐藏字段和筛选记录。

列数

要导入的源列数量不能超过 255,原因是 Access 在一个表中支持的最大字段数为 255。

空白行、列和单元格

删除 Excel 工作表或区域中所有不必要的空白行列。如果存在空白单元格,请尝试在这些单元格中添加丢失的数据。

错误值

如果工作表或区域中的一个或多个单元格包含错误值,请先更正这些错误值,再开始导入操作。如果源工作表或区域包含错误值,Access 将在表中的对应字段内插入空值。

数据类型

不能更改链接表中各字段的数据类型或大小。在开始链接操作前,必须验证每一列都包含一种特定类型的数据。

如果列中存在数据类型不同的值,强烈建议为该列设置格式。例如,工作表中的 FlightNo 列可能同时包含数字值和文本值(如 871、AA90 和 171)。为了避免丢失值或错误值,请执行以下操作:

1.右键单击该列,然后单击“设置单元格格式”
2.“数字”选项卡的“类别”下,选择一种格式。
3.单击“确定”

第一行

如果工作表或命名区域的第一行包含列名,则可指定 Access 在链接操作中将第一行的数据视为字段名称。如果工作表中没有列名,或是某个列名违反了 Access 中的字段命名规则,Access 将为每个对应字段指定一个有效名称。

1.关闭源文件(如果它是打开的)。

准备目标数据库

打开要在其中创建链接的数据库。确保该数据库不是只读的且您拥有更改该数据库所需的必要权限。

如果不想在任何现有数据库中存储该链接,请创建一个空白数据库:单击“文件”选项卡,单击“新建”,然后单击“空白数据库”“空白 Web 数据库”

有关 Web 数据库的详细信息,请参阅文章生成可在 WEB 上共享的数据库

现已准备就绪,可以开始链接操作。

创建链接

1.“外部数据”选项卡上的“导入并链接”组中,单击“Excel”

 注释    除非打开了数据库,否则“外部数据”选项卡不可用。

2.“获取外部数据 - Excel 电子表格”对话框的“文件名”框中,指定 Excel 源文件的名称。
3.选择“通过创建链接表来链接到数据源”,然后单击“确定”

“链接电子表格向导”将启动并引导您完成整个链接过程。

4.在向导的第一页上,选择一个工作表或命名区域,然后单击“下一步”
5.如果源工作表或区域的第一行包含字段名称,则选择“第一行包含列标题”。Access 使用这些列标题为表中的字段命名。如果列标题包含某些特殊字符,则不能在 Access 中用作字段名称。此情况下会显示一条错误消息,指明 Access 将为该字段指定一个有效名称。单击“确定”继续。
6.在向导的最后一页上,指定链接表的名称,然后单击“完成”。如果已经存在具有指定名称的表,则会询问您是否要覆盖现有表或查询。如果要覆盖现有表或查询,则单击“是”,否则单击“否”以指定不同的名称。

Access 将尝试创建一个链接表。如果操作成功,Access 将显示消息“完成链接表”。请打开该链接表,查看其中的字段和数据,确保在所有字段中看到的数据都是正确的。

如果看到错误值或不正确的数据,则必须解决源数据中的问题。有关错误值或不正确值的疑难解答信息,请参阅下一节。

TopPageIcon_CLV 返回页首

有关链接表中 #Num! 及其他错误值的疑难解答

即使显示消息“完成链接表”,您也应该在数据表视图中打开表,确保所有行列显示的数据都是正确的。

如果在表中任何地方发现错误或不正确的数据,则按下表中的说明采取纠正措施,然后重试链接操作。请记住,因为链接表是只读的,所以不能直接在表中添加值。

问题

解决方案

图形元素

无法在 Access 中链接到 Excel 工作表内的图形元素,如徽标、图表和图片。

显示格式

您可能需要在设计视图中设置某些字段的“格式”属性,以确保值能在数据表视图中正确显示。

计算值

计算列或单元格的结果能在对应字段中显示,但您不能在 Access 中查看公式(或表达式)。

截断文本值

在数据表视图中增大列的宽度。如果仍然不能看到整个值,原因可能是值的长度超过了 255 个字符。Access 只能链接前 255 个字符,因此应该导入数据,而不应链接数据。

错误消息“数字字段溢出”

链接表可能看起来是正确的,但稍后当您对该表运行查询时,将出现错误消息“数字字段溢出”。这是由于链接表中某字段的数据类型与该字段中存储的数据类型发生冲突造成的。

TRUE 或 FALSE 及 -1 或 0 值

如果源工作表或区域中的某一列只包含 TRUE 或 FALSE 值,Access 将在链接表中为该列创建“是/否”字段。不过,如果源工作表或区域中的某一列只包含 -1 或 0 值,Access 默认为该列创建数字字段,并且您不能更改链接表中对应字段的数据类型。如果需要链接表中存在“是/否”字段,应确保源列包含 TRUE 和 FALSE 值。

多值字段

Access 不提供对一个字段中包含多个值的支持,即使源列包含由分号 (;) 分隔的值列表时也如此。值列表将被视为单个值并放在文本字段中。

#Num!

在以下情况中,Access 会显示 #Num! 错误值而不显示实际数据:

如果源列中的大部分值均为文本值,其余小部分值为数字值或日期值,则不导入数字值和日期值。
如果源列中的大部分值均为数字值,其余小部分值为文本值,则不导入文本值。
如果源列中的大部分值均为日期值,其余小部分值为文本值,则不导入文本值。

请执行以下操作,以尽量减少表中出现空值的地方:

1.确保源列中所有值的数据类型完全相同。
2.为 Excel 工作表中的列设置格式。
3.在链接操作过程中,为每个字段选择正确的数据类型。如果数据类型不正确,对于所有的数据行,结果列中可能都只包含 #Num! 值。

日期值被替换为数字值

如果在字段中看到似乎是随机出现的 5 位数数字,请检查源列中的大部分值是否均为数字值,但同时也包含少量日期值。出现在数字值列中的日期值不能正确地转换为数字。请将日期值替换为数字值,然后重试链接操作。

数字值被替换为日期值

如果在字段中看到似乎是随机出现的日期值,请检查源列中的大部分值是否都为日期值,但同时也包含少量数字值。出现在日期列中的数字值不能正确地转换为日期。请将数字值替换为日期值,然后重试链接操作。

 

TopPageIcon_CLV 返回页首