使用 ADO 将查询结果从一个 MS-Access 数据库插入到另一个数据库

Insert query result from one MS-Access database to another using ADO

如果有人就如何将查询结果从一个数据库放入另一个数据库提出建议,我将不胜感激。

我可以在一个数据库上执行 select 查询,但如何在另一个数据库中 move/save 查询结果(数据)?我在 Rad Studio 中使用 ADO 组件 - Delphi 在本地 *.mdb 和 *.accdb 数据库上。有小费吗 ?感谢大家的回复。

如果您是 delphi 的新手 放置一个 TStringgrid TAdo 并将所有数据从 mdb 获取到 Gridcells 稍后关闭来自 mdb.and 连接到第二个 Db .accdb 的所有 ado 连接。 idk为什么它是accdb? 并开始从网格向 accdb 插入数据。 如果您的 ado 无法连接 accdb,那么创建第一个 mdb 的副本并尝试访问以另存为“.mdb”。 //如果你是专业人士,那么有一个 //ADOTable1.SaveToFile();

您可以使用用于 select 要复制的数据行的 SQL 特殊语法来执行此操作,如下所示:

我有第一个数据库 d:\aaad7\ado\test.mdb,其中包含一个 Access table ATable,其中包含一个字符列 ANAME。我还有第二个空数据库 d:\aaad7\ado\dest.mdb.

以下代码将 table ATable 复制到第二个数据库。

  AdoQueryCopy.SQL.Text := 'SELECT * INTO ATable IN "D:\aaad7\ado\dest.mdb" FROM ATable';
  AdoQueryCopy.ExecSql;

其中 AdoQueryCopy 是一个 TADOQuery,它有一个指向 d:\aaad7\ado\test.mdb.

的连接字符串

重要如果你想在d:\aaad7\ado\dest.mdb中打开ATable的副本,你需要关闭AdoQueryCopy正在使用的连接事先,否则您可能会收到一个错误,抱怨某些 ADO 对象不能 return 多个结果集。我不确定,但我认为这可能是因为 AdoQueryCopy.ExecSQL 导致使用插入的行创建临时 ADO 数据集。

复制到第二个数据库中 ATable 的行可以通过添加 WHERE 子句 select 编辑。