导入 Access 数据或将其链接到 SQL Server 数据

Access > 连接到数据源

 

导入 Access 数据或将其链接到 SQL Server 数据

blueup_CLV全部显示

bluedrop_CLV全部隐藏

如果部门或工作组使用 Microsoft SQL Server 来存储数据,那么您可能不得不在 Access 中使用某些 SQL Server 数据。

可以将 SQL Server 对象(表或视图)的数据引入 Access 中,方法有两种:导入或链接。这两种过程的区别如下:

如果导入数据,Access 将创建 SQL Server 数据的副本,如果在此之后更改 Access 数据库中的这些副本数据,那么更改不会反映在 SQL Server 数据库中。同样,在导入之后对 SQL Server 表或视图所做的任何更改,也不会在 Access 中反映出来。
如果链接到 SQL Server 数据,那么您将直接连接到源数据,因此,以后对 Access 中的数据所做的任何更改将在 SQL Server 中反映出来,反之亦然。

本文描述如何导入或链接到 SQL Server 数据库。

您想做什么?


hrefIcon_ZA10069439 决定导入还是链接

hrefIcon_ZA10069439 从 SQL SERVER 导入数据

hrefIcon_ZA10069439 保存和使用导入设置

hrefIcon_ZA10069439 链接到 SQL SERVER 数据

hrefIcon_ZA10069439 ACCESS 如何解释 SQL SERVER 数据类型


决定导入还是链接

适合导入的情况

通常,出于以下原因,需要将 SQL Server 数据导入到 Access 数据库:

由于不再需要 SQL Server 数据库中的数据,因此要将 SQL Server 数据永久移到 Access 数据库中。将数据导入 Access 后,可以从 SQL Server 数据库中删除这些数据。
部门或工作组使用 Access,但您偶尔会指向 SQL Server 数据库,以获得必须合并到您的某个 Access 数据库中的其他数据。

由于导入 SQL Server 数据会在 Access 数据库中创建这些数据的副本,因此在导入过程中,需要指定您想复制的表或视图。

适合链接的情况

通常,出于以下原因,需要链接到 SQL Server 数据:

为了能够同时在 SQL Server 数据库和 Access 数据库中查看和编辑最新信息,而直接连接到源数据。
SQL Server 数据库包含很多大表,所以无法将它们全都导入一个 .accdb 文件中。Access 数据库的最大大小为 2 GB 减去系统对象所需的空间。
如果要基于 SQL Server 中的数据运行查询和生成报表,而不想生成数据的副本,那么请考虑链接到 SQL Server。
部门或工作组使用 Access 进行报告和查询,并使用 SQL Server 存储数据。各个工作组可以创建 SQL Server 表和视图以集中存储,但通常此数据必须导入到桌面程序进行汇总和报告。链接是合适的选择,因为它允许 SQL Server 数据库和 Access 数据库的用户添加及更新数据,以及始终查看和使用最新的数据。
您是一位 Access 用户,最近开始使用 SQL Server。您将几个数据库迁移到了 SQL Server,而这些数据库中的大多数表都是链接表。从现在起,您将在 SQL Server 中创建表和视图,然后从 Access 数据库链接到这些表和视图,而不是创建 Access 表。
您想继续在 SQL Server 中存储数据,但您还想在 Access 中使用最新的数据,以便运行查询和打印您在 Access 中设计的报表。

TopPageIcon_CLV 返回页首

从 SQL Server 导入数据

准备导入

导入操作过程中,Access 创建一个表,然后将 SQL Server 数据库中的数据复制到该表中。导入操作结束时,可以选择将该次导入操作的详细信息另存为规格。

 注释    导入规格可帮助您日后重复该导入操作,而不必每次都逐步完成“导入向导”。

1.找到包含要导入的数据的 SQL Server 数据库。如需连接信息,可与该数据库的管理员联系。
2.确定要导入的表或视图。可以在一次导入操作中导入多个对象。
3.查看源数据,并谨记以下注意事项:
Access 在一个表中最多支持 255 个字段,因此,Access 仅导入前面 255 列。
Access 数据库的最大大小是 2 GB,并要减去系统对象所需的空间。如果 SQL Server 数据库包含许多大型表,您可能无法将它们全都导入到一个 .accdb 文件中。在这种情况下,您可能需要考虑改为将数据链接到 Access 数据库。
Access 不会在导入操作结束时自动在相关表之间创建关系。必须使用“关系”窗口上的选项,手动在不同的新表和现有表之间创建关系。若要显示“关系”窗口:
单击“文件”选项卡,然后在“信息”上单击“关系”
4.确定想导入 SQL Server 数据的 Access 数据库。

确保您有将数据添加到 Access 数据库所必需的权限。如果不想将这些数据存储在任何现有数据库中,则单击“文件”选项卡,然后在“新建”选项卡上单击“空白数据库”以创建空数据库。

5.查看 Access 数据库中的表(如果有的话)。

导入操作创建一个表,名称与 SQL Server 对象相同。如果该名称已在使用中,Access 会在新的表名后附加一个“1”— 例如,联系人1。(如果“联系人1”也已在使用中,Access 将创建“联系人2”,依此类推。)

 注释    在导入操作的过程中,Access 绝不会覆盖数据库中的表,而且您无法将 SQL Server 数据附加到现有的表。

导入数据

1.打开目标数据库。

“外部数据”选项卡上的“导入和链接”组中,单击“ODBC 数据库”

2.单击“将源数据导入当前数据库的新表中”,然后单击“确定”
3.“选取数据源”对话框中,如果想使用的 .dsn 文件已存在,则在列表中单击此文件。

blueup_CLV我需要创建新的 .DSN 文件

 注释    此过程中的步骤对您而言可能略有不同,具体取决于您的计算机上安装的软件。

1.单击“新建”以创建新的数据源名称 (DSN)。

“创建新数据源”向导随即启动。

2.在向导中,选择驱动程序列表中的“SQL Server”,然后单击“下一步”
3.键入 .dsn 文件的名称,或单击“浏览”将文件保存到另一个位置。

 注释    您必须具有该文件夹的写权限才能保存 .dsn 文件。

4.单击“下一步”,查看摘要信息,然后单击“完成”完成向导。

此时会显示“创建到 SQL Server 的新数据源”对话框。

5.“说明”框中键入数据源的说明。这一步是可选的。
6.“您想连接到哪个 SQL Server”下,在“服务器”框中键入或选择想连接到的 SQL Server 的名称,然后单击“下一步”继续。
7.您可能需要从 SQL Server 数据库管理员处获得相关信息,例如要使用 Microsoft Windows NT 身份验证,还是使用 SQL Server 身份验证。单击“下一步”继续。
8.如果要连接到特定的数据库,请确保选中了“更改默认的数据库为”复选框。然后,选择要使用的数据库,再单击“下一步”
9.单击“完成”
10.查看摘要信息,然后单击“测试数据源”
11.查看测试结果,然后单击“确定”关闭对话框。

如果测试成功,则再次单击“确定”,或单击“取消”更改设置。


4.单击“确定”以关闭“选取数据源”对话框。

Access 会显示“导入对象”对话框。

5.“表”下,单击想导入的每个表或视图,然后单击“确定”
6.如果“选择唯一的记录标识符”对话框出现,这表示 Access 无法确定哪个或哪些字段唯一地标识特定对象的每一行。在这种情况下,选择对于每一行为唯一的字段或字段组合,然后单击“确定”。如果不确定,请向 SQL Server 数据库管理员查询。

Access 导入数据。如果您计划以后重复此导入操作,则可将导入步骤另存为导入规格,并在以后轻松地重新运行相同的导入步骤。需要在计算机上安装 Microsoft Office Outlook 才能创建任务。

7.“获取外部数据 - ODBC 数据库”对话框中的“保存导入步骤”下,单击“关闭”。Access 完成导入操作,并在“导航窗格”中显示新的表。

如果要将导入步骤另存为任务以重复使用,请继续下一节。

TopPageIcon_CLV 返回页首

保存和使用导入设置

 注释    必须已安装了 Microsoft Office Outlook 才能创建任务。

1.“获取外部数据 - ODBC 数据库”对话框中的“保存导入步骤”下,选中“保存导入步骤”复选框。此时将出现一组附加控件。
2.“另存为”框中,键入导入规格的名称。
3.“说明”框中键入说明。这一步是可选的。
4.若要定期(例如每周或每月)执行该操作,选中“创建 Outlook 任务”复选框。这将在 Microsoft Outlook 2010 中创建让您运行导入规格的任务。
5.单击“保存导入”

如果没有安装 Outlook,那么在单击“保存导入”时,Access 会显示一条错误消息。

 注释    如果 Outlook 2010 配置不正确,Microsoft Outlook 2010 启动向导将启动。按照向导中的说明配置 Outlook。

(可选)可以创建 Outlook 任务。如果要定期或以周期性间隔运行导入操作,那么在 Outlook 中创建任务可能非常有用。但是,如果不创建任务,Access 仍然保存导入规格。

创建 OUTLOOK 任务

如果选中了“创建 Outlook 任务”复选框,Access 会启动 Office Outlook 2010,并显示一个新任务。按照以下步骤配置该任务:

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

1.查看并修改任务设置,例如“开始日期”“截止日期”“提醒”

若要使导入任务重复发生,单击“重复周期”并填写相应信息。

2.单击“保存并关闭”

运行已保存的任务

1.在 Outlook 的“导航窗格”中,单击“任务”,然后双击想运行的任务。
2.“任务”选项卡上的“Microsoft Access”组中,单击“运行导入”
3.切换回 Access 窗口,然后按 F5 以刷新“导航窗格”。
4.双击导入的表以在“数据表”视图中打开它。
5.确保所有字段和记录均已导入,并且没有任何错误。
6.在“导航窗格”中右键单击导入的表,然后在快捷菜单上单击“设计视图”。查看字段数据类型和其他字段属性。

TopPageIcon_CLV 返回页首

链接到 SQL Server 数据

由于数据存储在表中,因此,在链接到 SQL Server 数据库中的表或视图时,Access 会创建一个新表(通常称为链接表),该表反映源对象的结构和内容。可以在 SQL Server 中,或者在 Access 的“数据表”视图或“窗体”视图中更改数据。对某处数据所做的更改将反映在另一处。但是,如果想进行结构更改(例如删除或更改列),则必须从 SQL Server 数据库中,或者从连接到该数据库的 Access 项目中这样做。在 Access 中工作时,无法添加、删除或修改链接表中的字段。

准备链接

1.找到含有您想链接到的数据的 SQL Server 数据库。与数据库管理员联系,了解连接信息。
2.确定您想链接到的表和视图。可以在一个链接操作中链接到多个对象。
3.查看源数据,并谨记以下注意事项:
Access 在一个表中最多支持 255 个字段,因此,链接表将只包含所链接到的对象的前 255 个字段。
在 SQL Server 对象中为只读的列在 Access 中将继续为只读。
在 Access 中,您将无法在链接表中添加、删除或修改列。
4.确定要创建链接表的 Access 数据库。确保您具有将数据添加到该数据库的必要权限。如果不想将数据存储在任何现有数据库中,则单击“文件”选项卡,然后在“新建”选项卡上单击“空白数据库”创建一个新的空白数据库。
5.查看 Access 数据库中的表。链接到 SQL Server 表或视图时,Access 会创建一个名称与源对象相同的链接表。如果该名称已在使用中,Access 会在新链接表的名称后附加一个“1”— 例如,联系人1。(如果“联系人1”也已在使用中,Access 将创建“联系人2”,依此类推。)
6.若要链接到数据,请打开目标数据库。
7.“外部数据”选项卡上的“导入和链接”组中,单击“ODBC 数据库”
8.单击“通过创建链接表来链接到数据源”,然后单击“确定”
9.“选取数据源”对话框中,单击想使用的 .dsn 文件,或单击“新建”创建新的数据源名称 (DSN)。
10.“选取数据源”对话框中,如果想使用的 .dsn 文件已存在,则在列表中单击此文件。

blueup_CLV我需要创建新的 .DSN 文件

 注释    此过程中的步骤对您而言可能略有不同,具体取决于您的计算机上安装的软件。

单击“新建”以创建新的数据源名称 (DSN)。

“创建新数据源”向导随即启动。

在向导中,选择驱动程序列表中的“SQL Server”,然后单击“下一步”
键入 .dsn 文件的名称,或单击“浏览”将文件保存到另一个位置。

 注释    您必须具有该文件夹的写权限才能保存 .dsn 文件。

单击“下一步”,查看摘要信息,然后单击“完成”完成“创建新数据源”向导。

“创建到 SQL Server 的新数据源”向导随即启动。

在向导中,在“说明”框中键入数据源的说明。这一步是可选的。
“您想连接到哪个 SQL Server”下,在“服务器”框中键入或选择想连接到的 SQL Server 计算机的名称,然后单击“下一步”继续。
在向导的这一页上,您可能需要从 SQL Server 数据库管理员处获得信息,例如是使用 Windows NT 身份验证还是使用 SQL Server 身份验证。单击“下一步”继续。
在向导的下一页上,您可能需要从 SQL Server 数据库管理员处获得更多信息。如果想连接到特定的数据库,请确保选中了“将默认数据库改为”复选框,选择想使用的 SQL Server 数据库,然后单击“下一步”
单击“完成”。查看摘要信息,然后单击“测试数据源”
查看测试结果,然后单击“确定”以关闭“SQL Server ODBC 数据源测试”对话框。

如果测试成功,则再次单击“确定”完成向导,或单击“取消”返回到向导,并更改设置。


11.单击“确定”

Access 会显示“链接表”对话框。

12.“表”下,单击想链接到的每个表或视图,然后单击“确定”
如果“选择唯一的记录标识符”对话框出现,这表示 Access 无法确定哪个或哪些字段唯一地标识源数据的每一行。在这种情况下,选择对于每一行为唯一的字段或字段组合,然后单击“确定”。如果不确定,请向 SQL Server 数据库管理员查询。

Access 完成链接操作,并在“导航窗格”中显示新的链接表。

要点  每次您打开链接表或源对象时,您会看到其中显示了最新的数据。但是,对 SQL Server 对象所做的结构更改不会自动反映在链接表中。

通过应用最新的 SQL SERVER 对象结构来更新链接表:

1.在“导航窗格”中右键单击表,然后在快捷菜单上单击“链接表管理器”
2.选中想更新的每个链接表旁边的复选框,或单击“全选”以选择所有链接表。
3.单击“确定”

如果更新成功,Access 会显示相应的消息。否则,Access 将显示失败消息。

4.单击“关闭”以关闭“链接表管理器”。

TopPageIcon_CLV 返回页首

Access 如何解释 SQL Server 数据类型

由于 Access 数据类型不同于 SQL Server 数据类型,因此,Access 必须确定最合适的 Access 数据类型,以用于您导入或链接到的每个 SQL Server 表或视图的每一列。例如,数据类型为 bit 的 SQL Server 列以数据类型是/否导入或链接到 Access。另一个例子是,数据类型为 nvarchar(255)(或更小)的 SQL Server 列以数据类型文本导入或链接,但数据类型为 nvarchar(256)(或更大)的列作为 Access 备注字段导入。完成导入或链接操作后,可在“设计”视图中打开表,并确认 Access 向其字段分配了哪些数据类型。可以在导入的表中更改字段的数据类型。但是,除了在 SQL Server 数据库或在连接到该数据库的 Access 项目中外,不能更改链接表中字段的数据类型。

下表列出了主要的 SQL Server 数据类型。第二和第三列说明了 Access 如何解释各种类型。

SQL Server 数据类型

Access 数据类型

Access 字段大小

bigint

文本

255

binary(字段大小)

二进制

字段大小与 SQL Server 相同

bit

是/否


char(字段大小),其中字段大小 小于或等于 255

文本

字段大小与 SQL Server 相同

char(字段大小),其中字段大小 大于 255

备注


datetime

日期/时间


decimal(精度, 数值范围)

数字

小数(Access 精度数值范围属性匹配 SQL Server 精度和数值范围。)

float

数字

双精度型

image

OLE 对象


int

数字

长整型

money

货币


nchar(字段大小),其中字段大小 小于或等于 255

文本

字段大小与 SQL Server 相同

nchar(字段大小),其中字段大小 大于 255

备注


ntext

备注


numeric(精度, 数值范围)

数字

小数(Access 精度数值范围属性匹配 SQL Server 精度和数值范围。)

nvarchar(字段大小),其中字段大小 小于或等于 255

文本

字段大小与 SQL Server 相同

nvarchar(字段大小),其中字段大小 大于 255

备注


nvarchar(MAX)

备注


real

数字

单精度型

smalldatetime

日期/时间


smallint

数字

整型

smallmoney

货币


sql_variant

文本

255

text

备注


timestamp

二进制

8

tinyint

数字

字节

uniqueidentifier

数字

同步复制 ID

varbinary

二进制

字段大小与 SQL Server 相同

varbinary(MAX)

OLE 对象


varchar(字段大小),其中字段大小 小于或等于 255

文本

字段大小与 SQL Server 相同

varchar(字段大小),其中字段大小 大于 255

备注


varchar(MAX)

备注


xml

备注


TopPageIcon_CLV 返回页首