如何从 Access 数据库中重置 AutoIncrement 字段

Posted

技术标签:

【中文标题】如何从 Access 数据库中重置 AutoIncrement 字段【英文标题】:How to reset AutoIncrement field from Access Database 【发布时间】:2013-08-19 16:25:19 【问题描述】:

我正在尝试重置特定字段的自动增量字段。 原因是它获得了一个自动填充到案例编号中的计数。但是当它在 2013 年 12 月 31 日晚上 11:59:00 到达mindnight 时,我想自动增量从零重新开始。

这是我的一些代码。 此代码在 Form1 上,我从 Form2 中获取 ID2 的值,以保持案例编号仅在使用 Double Click 击中 Field1 时保持一致

Private Sub Field1_DblClick(Cancel As Integer)
    Docmd.OpenForm "Form2",,,,acFormAdd,acHidden
    Me.Field1 = Format(Date, "YY") & "-" & Format(Forms!Form2!ID2, "0000")
    Me.Field2.SetFocus
End Sub

也许有人有不同的方法。用于向上计数。 现在我遇到的问题是,当我到达“12/31/13 11:59:00 PM”时,我希望自动增量将自身重置回 1 以开始一个全新的案例编号。使用提供的格式。 知道它工作正常,他们看到的格式是 YY-0001,以 13-0001 案例编号示例为例。我有以下代码,我认为它应该适用于重置自动增量。可能有人有比这更好的方法。 我的代码。

Private Sub Field1_DblClick(Cancel As Integer)
    If Me.Text5 > "12:/31/2013 11:59:00 PM" Then
        DoCmd. DeleteObject acTable, "Table2"
        DoCmd.RunSQL "CREATE TABLE Table2 ([ID2] AUTOINCREMENT, [Field1] text (255))"
    end if

我有一个问题,如果他们不按数字,我该如何改变会发生的事情,我该如何强制它改变。 我在计时器上有 text5 定时器间隔每 1000 毫秒,即一秒 为计时器运行的代码是

Private Sub Form_Timer()
    Me.Text5 = Now()
End Sub

我有两个问题如果他们永远不需要按下我该如何验证它可以删除表并创建一个新表一旦它工作自动增量将刷新唯一的问题是我如何强制它它将自己做。

【问题讨论】:

我试过了,它删除了表并添加了一个新表,它给了我一个全新的记录,我有点像在盒子外面教的' 但是如果他们有更好的代码,我希望有人提供更好的建议。 【参考方案1】:

试试这个:

CurrentDb.Execute "ALTER TABLE YourTableNameHere ALTER COLUMN FieldNameHere COUNTER(1,1)"

【讨论】:

嘿,Johny,但我希望在新的一年到来时重置该栏。我怎么能这样做。 新年到来时你必须手动运行它。或者放入 Open Form 事件来检查日期,如果是新年,则运行代码。 对于那些从谷歌来到这里的人,有很好的讨论 - ***.com/questions/4416619【参考方案2】:

您也可以这样做:

    从字段中删除主键 删除字段 创建一个与您删除的字段完全相同的新字段 完成了

更多详情:https://www.youtube.com/watch?v=1kni5kFzlPk 问候。

【讨论】:

以上是关于如何从 Access 数据库中重置 AutoIncrement 字段的主要内容,如果未能解决你的问题,请参考以下文章

iOS:重置 UIPickerView EXC_BAD_ACCESS 错误

如何使用 xampp/phpmyadmin 配置 innodb 的 innodb_autoinc_lock_mode

使用 FireDac TFDCommand 对 autoinc 字段执行插入操作并检索生成的值

德尔福火鸟汽车

在 Slick 2.0 中插入后返回 AutoInc ID

在压缩/修复期间防止自动编号重置 (MS Access)