我可以在Access中编辑自动编号列吗?

时间:2010-06-24 21:14:04

标签: database ms-access database-design autonumber

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

6 个答案:

答案 0 :(得分:8)

以下是我在Access 2010中设法完成此操作的方法:

  1. 备份数据库。 (为了安全起见。)
  2. 右键单击表格列表中的表格,然后选择导出 - > Excel。接受所有默认值。
  3. 在Excel中打开表格并对自动编号字段进行所需的更改。
  4. 打开表并删除所有行
  5. 右键单击表格列表中的表格,然后选择Import-> Excel
    • 在选项中,选择“附加到表格”并选择表格。接受所有其他选项的默认值
  6. 对于大型表,这可能不是一个可行的解决方案。我不认为Excel可以处理超过65K行。

答案 1 :(得分:6)

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

备份数据表。从原始表格中删除所有数据,然后执行压缩& amp;修复你的数据库。通过执行此操作,自动编号字段将重置为1.您现在可以从备份表附加数据。

答案 5 :(得分:0)

类似的SQL代码

   insert into <tablename> 
   (<column 1>, <column2>, ...) 
   values
   ( <value 1>, <value 2>, ...);
如果您在查询中包括自动编号列,

将解决问题。这很繁琐,但是可以。您可以切换到SQL模式,以便任何旧查询输入此文本(通常是在文本编辑器中准备好此文本之后),或者如@Dominic P所指出的那样,您可以打开VBA立即窗口并运行DoCmd.RunSQL "INSERT INTO ..."在Access中为您提供更好的编辑体验。