5

我在 Access 数据库中丢失了数据,并且设法将它们恢复,但是当我使用自动编号列复制表中的值时,它会增加数字。有什么方法可以将其更改为 int,然后将其带回 AutoNumber?

4

6 回答 6

8

以下是我在 Access 2010 中如何做到这一点:

  1. 备份您的数据库。(只是为了安全。)
  2. 右键单击表格列表中的表格,然后选择导出-> Excel。接受所有默认值。
  3. 在 Excel 中打开表格并对自动编号字段进行所需的更改。
  4. 打开表并删除所有行
  5. 右键单击表格列表中的表格,然后选择导入->Excel
    • 在选项中,选择“附加到表格”并选择表格。接受所有其他选项的默认值

对于大表来说,这可能不是一个可行的解决方案。我认为 Excel 不能处理超过 65K 的行。

于 2012-04-10T15:04:28.940 回答
6

不要使用用户界面复制数据,而是将其附加到查询中。因为自动编号字段只是一个具有特殊默认值的长整数,所以您可以将已经存在的值附加到它上面。这在 UI 中不起作用,而仅在 SQL 中起作用。

自动编号字段具有与普通长整数字段不同的一些其他属性,但就附加数据而言,这些属性不相关。其中一个属性是它一旦填充就不可编辑,另一个是每个表中只能有一个。

于 2010-06-25T23:47:13.777 回答
1

我已经设法通过 c# 中的代码插入自动编号字段。我把我需要的所有数据都插入到一个空表中。

于 2010-06-30T07:44:25.190 回答
0

你是如何把数据带回来的?应该可以附加表中的数据并保留现有数字。

但是,您必须从整数字段粘贴到自动编号字段。一旦字段中有数据,您就无法将字段从整数更改为自动编号,但您可以从自动编号更改为整数。

于 2010-06-24T21:45:14.880 回答
0

备份您的数据表。删除原始表中的所有数据,然后压缩和修复您的数据库。通过这样做,自动编号字段将重置为 1。您现在可以从备份表中追加数据。

于 2013-06-25T13:06:14.877 回答
0

SQL 代码如

   insert into <tablename> 
   (<column 1>, <column2>, ...) 
   values
   ( <value 1>, <value 2>, ...);

如果您在查询中包含自动编号列,则可以解决问题。这很乏味,但有效。您可以为任何旧查询切换到 SQL 模式以输入此文本(通常在文本编辑器中准备好之后),或者正如@Dominic P 指出的那样,您可以打开一个 VBA 即时窗口并运行DoCmd.RunSQL "INSERT INTO ...",这将为您提供更好的编辑器Access 中的经验。

于 2019-02-13T20:56:53.713 回答