使用记录号将链接的DBF转换为Access

我有一个旧的dbase数据库(由用clipper 5.2编程的程序制成),它由多个表(文件)组成。这些表与某种记录号链接,但是在源表中找不到记录号字段。我想将此数据库转换为access并重新建立链接。我已经读过有关dbf记录指针(?)的内容,但我不知道如何从DBF中提取它。

wuzesc 回答:使用记录号将链接的DBF转换为Access

好吧,如果正在使用recno()或类似的东西,则表明该表从1开始。 记住,您无法在Access中更新PK自动编号,但可以对此类表运行追加查询!!!

因此链接到dBase表。当您在Access中查看此表时,它是否显示该递增列?

它应该而且对我有用。

您尚未清楚上述详细信息。

因此,假设您看到此列是递增的,并且未标记为PK?

这很好(并且可以预期)。正如您在链接表中看到的递增数字一样长,那么就很好。

然后,导入过程变得非常快速和容易。

在“创建功能区”选项卡上,只需选择查询设计。

拖放到该链接表中。

从功能区中选择制作表。输入新的本地表名称。

将表格中的*拖动到查询网格(网格的第一列)中。

你有这个:

enter image description here

现在运行上述查询(单击功能区中的运行按钮)。

退出(抛出该查询-无需保存)。

结果将是带有该数字列的新本地表。

现在,该本地表中的数据为空。

(使用Ctrl-g调试窗口)

Currentdb.execute“从NewLocalTable中删除*”

现在执行压缩+修复(这将重置空表中的所有自动编号列-可能不是必需的-但无论如何都要这样做)。它会回收我们刚刚清空的那个表的空白空间。

好,现在在设计模式下打开该新本地表。选择该第一个数字id列,然后将其删除。 (点击该行-可能是第一行-按下del键)。

现在,单击第一行以选择第一列。点击插入键将其全部按下,然后输入您刚删除的编号列的名称。 Tab键,自动编号,然后从功能区中敲击PK按钮(主键按钮)。

关闭表格设计器。保存设计更改。

我们现在有一个空表,其中的PK自动编号列与以前的名称相同。

现在,创建新查询,在链接表中下垂。

从功能区中选择追加查询,然后输入新的本地空表的名称。

将*拖动到查询网格中。

运行它。

我们现在有了一个带有PK自动编号的本地表,并且这些列将与链接的表匹配。

要进行10秒钟的测试?

Ctrl-g(跳至调试窗口)。

输入:

? dcount("*","linkeddBaseTabble name")
? dcount("*","NewlocalTable name")

记录数应该相同。

此时,您的本地表具有相同的列和PK ID自动编号列。

您可以重复上述步骤。进行得很快。 20-30张桌子不会花很长时间。

现在的结果是本地表,并且每个表将具有一个具有相同列名的自动编号PK列。

我认为作为链接表的列是“ ID”,但可能是RECNO。 (因此,请将其用于本地PK列名称。)

所以你:

链接到dbase表。

查询构建器–制作表格。

Ctrl-g可以清空本地表:

Currentdb.execute "delete * from local table name"

在设计中打开本地表-删除数字列,将其重新添加为PK自动编号。

查询构建器,放入链接表中。从功能区中选择追加查询,输入本地表的名称。

拖动“ *”以查询网格–运行它。

您现在有了一个本地表,其PK自动编号与链接表相同。

移至下一个表以进行导入(通过上述几步操作,为您导入的每个表添加一个自动编号。

,

您可以只将表导入Access中,然后将其用作蓝图。
只要确保“表关系”是正确的...我知道没有一个,而是采用“逻辑”路径...如果您的表的fieldName为“ FaxBookID”,而您的表为“ FaxBook”。 ..你知道他们有关系

本文链接:https://www.f2er.com/2884986.html

大家都在问