|
发布日期:2007-6-6
作 者:微软
摘 要:添加新记录时不当删除最后一个记录或表中记录或窗体中具有 AutoNumber 字段, 并压缩数据库, 然后 AutoNumber 字段不发生作用,使用以下两种方法之一可解决此问题。
正 文:
原因: 您有安装 Microsoft Jet 4.0 Service Pack 4 (Msjet 40 .dll 版本 4.00.2927.4) 或更高版本。
一、解决方案如下: 方法 1 创建新表并追加现有记录到新表。 除非将递增值编程新记录添加到此表将开头的 AutoNumber 值为一个。
注意 如果不再需要记录, 可以也将 AutoNumber 字段通过从表, 删除所有记录和再压缩数据库。 但是, 如果您使用此方法, 您能得到删除记录。
要创建新表并现有记录追加到新表在 MicrosoftAccess 数据库 (.mdb), 请按照下列步骤: 1. 单击数据库窗口中您表。 2. 按 CTRL + C 3. 按 Ctrl + V。 4. 单击 结构只 粘贴表方式 对话框中, 键入名称 tblNewTable , 然后单击 确定 。 5. 在 Microsoft Office Access 2003 或 Microsoft Access 2002, 中 数据库对象 指向 视图 菜单上, 单击 查询 , 依次 设计视图中创建查询 。
其他 组中 Microsoft Office Access 2007年, 中 创建 选项卡, 依次 查询设计 。 6. 添加 , 单击旧表, 然后和 Close , 对话框中 显示表 。 7. Access 2003 中或在 Access 2002, 单击 查询 菜单上 追加查询 。
在 Access 2007年, 单击 设计 选项卡上 查询类型 组中 追加 。 8. 追加 对话框中, tblNewTable 在 表名称 框中, 单击, 然后单击 确定 。 9. 所有字段添加到查询设计网格除 AutoNumber 字段。 10. 在 Access 2003 或在 Access 2002, 在 查询 菜单上, 单击 运行 到记录追加到新表。
在 Access 2007年, 单击 设计 选项卡上将记录追加到新表 结果 组中 运行 。 11. 打开 tblNewTable 表, 然后添加记录。
注意 AutoNumber 是下一个高编号。
方法 2 您在 MicrosoftAccess 数据库 (.mdb) 使用下列函数重置种子值将 AutoNumber 字段编程。 可添加到模块, 函数, 然后在调试窗口运行它。 或从一个命令按钮或宏中调用函数。
注意 对于此代码以运行正确, 必须引用 MicrosoftActiveX 数据对象 x 和 Microsoft ADO Ext x 对于 DDL 和安全库 (其中 x 是 2.1 或更高。 可以进行, 单击 工具 菜单在 VisualBasic 编辑器上 引用 。 确保 MicrosoftActiveX 数据对象 x 和 Microsoft ADO Ext x 为 DDL 和安全库 复选框被选中。
Function ChangeSeed(strTbl As String, strCol As String, lngSeed As Long) As Boolean 'You must pass the following variables to this function. 'strTbl = Table containing autonumber field 'strCol = Name of the autonumber field 'lngSeed = Long integer value you want to use for next AutoNumber.
Dim cnn As ADODB.Connection Dim cat As New ADOX.Catalog Dim col As ADOX.Column
'Set connection and catalog to current database. Set cnn = CurrentProject.Connection cat.ActiveConnection = cnn
Set col = cat.Tables(strTbl).Columns(strCol)
col.Properties("Seed") = lngSeed cat.Tables(strTbl).Columns.Refresh If col.Properties("seed") = lngSeed Then ChangeSeed = True Else ChangeSeed = False End If Set col = Nothing Set cat = Nothing Set cnn = Nothing
End Function
二、本文摘自:http://support.microsoft.com/kb/287756/zh-cn#top
|