7

我需要升级一个拆分的 Access 数据库,即当前在两个 mdb 文件、前端和后端之间拆分的数据库。我看到许多网页本质上说“运行升迁向导”。我的第一个非常基本的问题:

我应该在前端 mdb 还是后端 mdb 中运行此向导?

我假设我不想链接主 mdb -> 后端 mdb -> sql server。我是否应该在后端 mdb 上运行向导,然后在前端 mdb 中将链接表更改为指向 sql server 而不是后端 mdb?如果是这样,这是如何完成的?当我右键单击并进入前端表的链接表管理器(链接到后端 md)时,它似乎只让我选择一个新的 mdb 文件。

4

5 回答 5

4

我同意您的第一个猜测:您将希望在后端 mdb 上运行该向导。

一旦在 SQL Server 中,也如您所料,您需要链接前端以使用 SQL Server 数据。一种方法是为您的新 SQL Server 数据库设置一个 ODBC 数据源,并在链接表管理器中选择它。

  1. 打开数据源 (ODBC) 快捷方式:在 XP Pro 中,它位于管理工具下的控制面板中。(如果您没有看到它,您可能没有创建数据源的权限,因此您必须与您的网络人员合作才能执行此操作。)这将打开 ODBC 管理器。
  2. 在文件 DSN 选项卡上,单击添加...。您将看到可用驱动程序的列表。选择 SQL Server,然后单击下一步。(如果前端只在您的机器上使用,您可以创建一个系统 DSN。)
  3. 找到一个公共位置并命名您的数据源。
  4. 单击下一步并完成。这将设置数据源的第一部分,并将打开 SQL Server 数据源向导。
  5. 命名数据源并选择您放置升级后的后端数据库的服务器。
  6. 根据需要更改其余设置(您可能不需要更改太多,但这些更改的范围可能需要第二个问题),然后单击完成。

设置好数据源后,Get External Data 应该让您可以选择它作为您的数据源。(在 2007 年,您可以从“外部数据”功能区到达那里。ODBC 数据源在“更多”下可用。)

根据马特的后续问题进一步扩展:

你怎么做是一个设计选择。我建议扩大后端 mdb 的大小,因为这样您就可以保留 Access 中的任何表格等;如果您的数据在 SQL Server 中,我认为这不是一个过渡。

在升迁之前,您的表已链接到后端数据库,并且链接表管理器会显示这些链接。设置 ODBC 数据源并链接这些表后,它将显示该链接。您将以两种不同的方式查看链接,因为它们实际上是不同类型的链接(Access 与 ODBC),即使这些链接在您的前端 mdb 中可能看起来相同。

于 2008-10-08T19:32:44.277 回答
1

就我个人而言,我发现升迁向导在确定正确的数据类型方面做得非常糟糕。我会使用我需要的数据类型在 SQL Server 中自己创建表,然后将数据从 Access 移动到现有表中。否则,当您真正需要小数时可以使用 varchar 或 float 时,您将被文本数据困住。

移动数据后,我将删除 Access 表并链接到 SQL Server 表。

如果没有数据库的备份副本,请不要做任何事情。

于 2008-10-08T19:39:35.667 回答
0

作为一个标准的偏执狂,我只会制作现有文件的备份副本并在前端运行升迁向导。如果发生任何不希望的事情,只需通过使用备份副本覆盖来恢复更改。

于 2008-10-08T19:25:34.963 回答
0

更新前端,它会在升迁之前导入后端表。一周前我做了这个,结果很成功。

但是,任何使用 -1 而不是 Yes 的查询都将失败。在没有主键的表上删除任何完整的表都将失败,并且您将获得与仅使用传递 SQL 查询截断表不同的行为。trunc 将删除所有行,Access 版本可能会留空。

此外,您需要在具有自动编号列数据类型的表上打开记录集的任何地方包含 dbSeeChanges。SQL 将这些更改为身份数据类型,然后在您尝试打开表之前抱怨。祝你好运。

于 2010-07-12T04:22:50.590 回答
0

在前端做这一切

您可以简单地将表导出到 SQL Server。

然后,您可以删除前端中的链接表。

然后将连接链接到 SQL Server

查看:

  • 当您打开表格时,您会获得记录
  • 您的所有查询都运行
  • 编译你的代码

您还必须考虑如何发布前端。如果您使用的是 dsn 文件,则需要将其提供给每个用户。

您将需要确定最终用户如何访问 SQL Server。您是否使用存储在连接中的用户名和密码进行单一登录?

您还可以将后端数据库拆分为多个 Access 数据库并将它们链接到前端。

于 2021-04-12T17:32:30.383 回答