2013-08-19 39 views
-1

我正在尝试重置特定字段的Autoincrement字段。 原因是因为它获得自动填充在案例编号中的计数。但是当它命中mindnight 12/31/2013 11:59:00 PM我想自动增量从零开始。如何从Access数据库中重置AutoIncrement字段

这是我有的一些代码。 此代码是在Form1上,我得到了ID2从窗体2的值通过双击

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 

也许有人有不同的方法来保持病例数洽时,才击中字段1。为了向上计数。 现在我的问题是,当我到达“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 

我如何从不断变化的,如果他们不按我怎么迫使它改变数字发生了什么管理问题。 我对每1000毫秒这是一个定时器运行第二 代码计时器 计时器间隔text5是

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

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

+0

我试过了,它删除了表格,并添加了一个新的记录,它给了我一个全新的记录,我在箱子外面教了' – NOE2270667

+0

但是我想要一个更好的建议,如果他们有更好的代码。 – NOE2270667

回答

1

试试这个:

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

嗨Johny,但我希望列新的一年来重置。我怎么能这样做。 – NOE2270667

+0

当新的一年到来时,你必须手动运行它。或者在Open Form事件中检查日期,如果是新的一年,则运行代码。 –

+0

对于那些来自Google的人来说,有很好的讨论 - http://stackoverflow.com/questions/4416619 –

相关问题