1

特定のフィールドの Autoincrement フィールドをリセットしようとしています。ケース番号に自動入力されるカウントを取得するための理由。しかし、mindnight 12/31/2013 11:59:00 PM に到達すると、自動インクリメントしてゼロから再開したいと考えています。

これは私が持っているコードです。このコードは Form1 にあり、ID2 の値を Form2 から取得して、ダブルクリックを使用して 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

私が抱えている問題は、番号を押さない場合に何が起こるかを変更する方法をどのように管理するかです。私は1000ミリ秒ごとにタイマー間隔でtext5を持っています。これは1秒であり、タイマーに対して実行されるコードは

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

自動インクリメントが機能したら、テーブルを削除して新しいテーブルを作成できるように検証する方法を押す必要がない場合に何が起こるかという2つの問題があります。唯一の問題は、それを強制する方法です。独自の。

4

2 に答える 2

4

これを試して:

CurrentDb.Execute "ALTER TABLE YourTableNameHere ALTER COLUMN FieldNameHere COUNTER(1,1)"
于 2013-08-19T20:19:09.460 に答える
1

これを行うこともできます:

  1. フィールドから主キーを削除します
  2. フィールドを削除する
  3. 削除したものとまったく同じ新しいフィールドを作成します
  4. 終わった

詳細: https://www.youtube.com/watch?v=1kni5kFzlPk よろしく。

于 2015-11-19T10:12:53.883 に答える