使用导出向导,可以将数据从 Access 数据库导出为可通过 Excel 读取的文件格式。 本文介绍如何准备数据并将其导出到 Excel ,并提供有关可能发生的常见问题的一些故障排除提示。
本文内容
将数据导出到 Excel :基础知识
将数据导出到 Excel 时, Access 会创建所选数据的副本,然后将复制的数据存储在可在 Excel 中打开的文件中。 如果经常将数据从 Access 复制到 Excel ,则可以保存导出作的详细信息以供将来使用,甚至可以将导出作安排为按设置的时间间隔自动运行。
将数据导出到 Excel 的常见方案
-
你的部门或工作组使用 Access 和 Excel 来处理数据。 可以将数据存储在 Access 数据库中,但使用 Excel 来分析数据并分发分析结果。 你的团队当前将数据导出到 Excel ,因为他们需要这样做,但你希望提高此过程的效率。
-
你是 Access 的长期用户,但你的经理更喜欢使用 Excel 中的数据。 定期执行将数据复制到 Excel 的工作,但希望自动执行此过程以节省自己的时间。
关于将数据导出到 Excel
-
Access 不包含 Excel 格式的“另存为”命令。 若要将数据复制到 Excel ,必须使用本文中所述的“导出”功能,或者可以将 Access 数据复制到剪贴板,然后将其粘贴到 Excel 电子表格中。
-
您可以导出表、查询、窗体或报表。 也可以导出多记录视图(如数据表)中的选定记录。
-
Excel 包含一个命令,用于从 Access 数据库导入数据。 可以使用该命令而不是 Access 中的导出命令;但是, Excel import 命令仅允许导入表或查询。 有关详细信息,请参阅 Excel 帮助文章 连接到 (导入) 外部数据。
-
不能将宏或模块导出到 Excel 。 当您导出包含子窗体、子报表或子数据表的窗体、报表或数据表时,将只能导出主窗体、主报表或主数据表。 必须对要导出到 的每个子窗体、子报表和子数据表重复导出作, Excel 。
-
在一个导出操作中只能导出一个数据库对象。 但是,在完成单个导出作后,可以在 Excel 中合并多个工作表。
准备执行导出操作
执行导出过程前,最好查看您要导出的数据以确保其中不包含任何错误指示器或错误值。 如果有任何错误,请在将数据导出到 Excel 之前尝试解决这些问题。 否则,导出作期间可能会出现问题,并且 null 值可能会插入到 Excel 工作表中的单元格中。 有关导出到 Excel 时可能出现的问题的详细信息,请参阅 排查缺失值和错误值问题部分。
如果源对象是一个表或查询,则需要决定在导出数据时是否保留格式。 此决定会影响结果工作簿的两个方面 — 导出的数据量和数据的显示格式。 下表说明了导出带格式和不带格式的数据的结果。
|
导出 |
源对象 |
字段和记录 |
格式 |
|---|---|---|---|
|
不带格式 |
表或查询 注意: 导出窗体和报表时必须保留其格式。 |
导出基础对象中的所有字段和记录。 |
操作过程中将忽略“格式”属性设置。 对于查阅字段,仅会导出查阅 ID 值。 对于超链接字段,内容将被导出为以 displaytext#address# 格式显示链接的文本列。 |
|
带格式 |
表、查询、窗体或报表 |
仅导出当前视图或对象中显示的字段和记录。 将不导出筛选字段、数据表中的隐藏列以及未显示在窗体或报表上的字段。 |
该向导将使用“格式”属性设置。 对于查阅字段,查阅值将被导出。 对于超链接字段,值将被导出为超链接。 对于格式文本字段,将导出文本但不导出格式。 |
选择目标工作簿和文件格式。 注意,只能导出文件格式为旧版 *.xls 而不是新版 *.xlsx 的报表。
在导出作期间, Access 会提示指定目标工作簿的名称。 下表总结了何时创建工作簿(如果尚不存在)以及何时覆盖它(如果已存在)。
|
如果目标工作簿 |
源对象 |
导出目标 |
那么 |
|---|---|---|---|
|
不存在 |
表、查询、窗体或报表 |
带有格式或不带格式的数据 |
在导出操作过程中创建工作簿。 |
|
已存在 |
表或查询 |
不带格式的数据 |
不覆盖工作簿。 新工作表添加到工作簿中,并提供从其导出数据的对象的名称。 如果工作簿中已存在具有该名称的工作表, Access 将提示您替换相应工作表的内容或为新工作表指定其他名称。 |
|
已存在 |
表、查询、窗体或报表 |
带格式的数据 |
使用导出的数据覆盖工作簿。 所有现有的工作表都将被删除,并创建与导出的对象同名的新工作表。 Excel 工作表中的数据继承源对象的格式设置。 |
数据始终被添加到新工作表中。 您无法在任何现有工作表或命名区域中附加数据。
运行导出操作
-
如果目标 Excel 工作簿处于打开状态,请先将其关闭,然后再继续作。
-
在源数据库的导航窗格中,选择您要导出的对象。
只导出部分数据
如果对象是表、查询或窗体,且您只希望导出部分数据,则在数据表视图中打开该对象,然后选择所需的记录。
按照下列步骤在数据表视图中打开窗体:
-
双击目标窗体将其打开。
-
右键单击该窗体,然后单击“数据表视图”。 如果此选项不可用:
-
单击“设计视图”。
-
按 F4 以显示“属性表”任务窗格。
-
从“属性表”顶部的下拉列表中选择“窗体”。
-
在“属性表”的“格式”选项卡上,将“允许数据表视图”属性设置为“是”。
-
在“设计”选项卡上的“视图”组中,单击“数据表视图”。
注意: 不能导出报表的一部分。 但是,您可选择或打开报表所基于的表或查询,然后导出该对象中的数据的一部分。
-
-
-
在“ 外部数据 ”选项卡上的“ 导出 ”组中,单击“ Excel”。
-
在“ 导出 - Excel 电子表格 ”对话框中,查看 Excel 工作簿的建议文件名, (Access 使用源对象的名称) 。 如果需要,可以更改该文件名。
-
在“文件格式”框中,选择所需的文件格式。
-
如果要导出表或查询,且希望导出带格式的数据,则选择“导出数据时包含格式和布局”。 有关详细信息,请参阅准备执行导出操作。
注意: 如果要导出窗体或报表,则此选项始终被选中但却不可用(呈灰色)。
-
若要在导出作完成后查看目标 Excel 工作簿,请选择“导出作完成后打开目标文件”框检查。
如果在开始导出操作之前,源对象已打开且您在视图中选定了一个或多个记录,则可选择“仅导出所选记录”。 若要导出视图中显示的所有记录,则保持此复选框为空。
注意: 如果未选定任何记录,则此复选框不可用(呈灰色)。
-
单击“确定”。
如果导出作因错误而失败, Access 将显示一条消息,描述错误原因。 否则, Access 导出数据,并根据步骤 7 中的选择,在 Excel 中打开目标工作簿。 然后,Access 将显示一个对话框,你可以在其中创建使用导出作中的详细信息的规范。
有关导出的其他需知内容
-
有关如何将导出的详细信息保存到可稍后使用的规范中,请参阅将导入或导出操作的详细信息另存为规范一文。
-
有关如何运行已保存的导出规范的信息,请参阅运行保存的导入或导出操作。
-
若要了解如何计划在特定时间运行规范,请参阅计划导入或导出操作一文。
-
有关如何更改规范名称,删除规范或更新规范中源文件名的相关信息,请参阅管理数据任务一文。
解决值丢失和值错误问题
下表说明了解决常见错误的各种不同方法。
提示: 如果发现只缺少几个值,请在 Excel 工作簿中修复它们。 否则,请修复 Access 数据库中的源对象,然后重复导出作。
|
问题 |
说明和解决方法 |
|---|---|
|
计算字段 |
计算字段的结果将被导出,但执行计算的基础表达式不会被导出。 |
|
多值字段 |
支持多个值的字段将被导出为由分号 (;) 分隔的值列表。 |
|
图片、对象和附件 |
图形元素(如徽标、OLE 对象字段的内容和作为源数据的一部分的附件)不会被导出。 当您完成导出操作后,需手动将它们添加到工作表。 |
|
图表 |
导出包含 Microsoft Graph 对象的窗体或报表时,不会导出图形对象。 |
|
错误列中的数据 |
结果工作表中的空值有时会被本应当位于下一列中的数据所替代。 |
|
丢失日期值 |
早于 1900 年 1 月 1 日的日期值不会被导出。 工作表中的相应单元格将包含一个空值。 |
|
丢失表达式 |
用于计算值的表达式不会导出到 Excel 。 将只导出计算结果。 完成导出作后,手动将公式添加到 Excel 工作表。 |
|
丢失子窗体、子报表和子数据表 |
当您导出窗体、报表或数据表时,将只导出主窗体、主报表或主数据表。 对于您要导出的每个子窗体、子报表和子数据表,您必须重复执行导出操作。 |
|
丢失列或列格式错误 |
如果结果工作表中没有任何列带有格式,则重复执行导出操作,确保在向导中选中“导出数据时包含格式和布局”复选框。 相反,如果只显示某些列的格式与源对象中的版本不同,请在 Excel 中手动应用所需的格式。 在 Excel 中设置列的格式
|
|
列中的“#”值 |
您可能会看到与窗体中的“是/否”字段相对应的列中出现值 #。 这可能是从导航窗格或窗体视图启动导出操作的结果。 若要解决此问题,请在导出数据前在数据表视图中打开窗体。 |
|
错误指示器或错误值 |
检查单元格中是否存在错误指示器(位于角落中的绿色三角形)或错误值(以 # 字符而不是相应数据开头的字符串)。 |