【问题标题】:Copying to/from Dbase data using Access使用 Access 复制到/从 Dbase 数据
【发布时间】:2012-06-27 17:02:00
【问题描述】:

我被一些使用 dBase IV 的遗留后端卡住了,并且希望能够使用 Access 前端将记录从一个表复制到另一个表。简单的答案是链接到源表和目标表并运行 INSERT 查询或类似查询。

但是,在我的情况下,后端不是单个 DBF 文件,而是需要动态链接到数百个文件以进行复制操作。目前,每次我希望执行复制操作时,我都必须使用 TableDefs 属性(在 VBA 中)更改和刷新链接定义。

关键是前端是共享的,这意味着每个用户都必须拥有一份单独的 FE 副本,这样链接表的定义就不会被其他用户修改。

我想知道有没有不使用链接表的简单方法?我可以打开到源和目标的 DAO 连接,但找不到任何简单的复制记录的方法(一次一个除外)。反正有这方面的吗?

【问题讨论】:

  • ado ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\My Documents\dBase;Extended Properties=dBase III") 怎么样?
  • 好吧,我目前在我的链接表连接字符串和 VBA 中都这样做。我遇到的问题是将一个 Dbase 表的所有查询结果复制到另一个数据库中的另一个表中。

标签: ms-access dao dbase


【解决方案1】:

可以使用插入另一个位置的 DBF 的链接 DBF 运行查询:

INSERT INTO [dBASE III;DATABASE=z:\docs\].[dbf2.dbf]
SELECT *
FROM dbf1;

或者

INSERT  INTO dbf1
SELECT *
FROM  [dBASE III;DATABASE=z:\docs\].[dbf2.dbf];

【讨论】:

  • 让我试一试。 FROM子句中也可以使用相同的语法吗?
  • 太棒了。您也可以在同一查询的 INSERT INTO 和 FROM 子句中使用 [dbase III...] 语法。请注意,表名中的 .dbf 扩展名是可选的。太好了,谢谢。
  • 我可能会打开另一个与此相关的问题 - 我相信我在 Access 中发现了一个错误/限制。您提供的语法适用于生成表查询(SELECT ... INTO ... FROM)。如果新创建的 DBF 文件的路径长度超过 74 个字符,则 Access 无法创建它。奇怪的是,这不是选择或插入查询的错误,也不是删除或创建表查询的错误
猜你喜欢
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多