web-dev-qa-db-ja.com

Accessでオートナンバーの最初の値を設定するにはどうすればよいですか?

この質問 のようにオートナンバーの値をリセットする必要はありませんが、最初に数値を次のように設定したいと思います。

1001

次に、通常のように増分します。

1001

1002

1003

...

Access 2010でこれを行うにはどうすればよいですか?

9
James Mertz

Accessはこの機能をネイティブで提供していませんが、次のようなクエリを通じて実現できます。

_CREATE TABLE TableThatIncrements
(
Id AUTOINCREMENT(1001,1)
)
_

これにより、「Id」という名前の単一の列を持つ「TableThatIncrements」という単一のテーブルが作成されます。これで、テーブルエディターを使用して、プロパティや他の列を追加できます。

変化する

_AUTOINCREMENT(x,y)
_

必要に応じて、xは最初の増分数で、yは増分する数です。したがって、AUTOINCREMENT(100,5)は、100、105、110、115などを生成します。

既存のテーブルを変更する場合は、次のクエリを使用します。 Accessがロックして変更できるように、特定のテーブルのタブが閉じていることを確認してください。

_ALTER TABLE TableThatIncrements
   ALTER COLUMN Id AUTOINCREMENT(1001,1)
_

次の操作を行うと、Accessでクエリを実行できます。

  1. [作成]タブに移動し、[クエリデザイン]をクリックします
    enter image description here

  2. 表示されるウィンドウを閉じるだけで、テーブルを選択するように求められます。これは必要ありません。

  3. [デザイン]タブに移動し、テキスト入力画面が表示されるまで矢印のボタンをクリックします。 (デフォルトでは、_SELECT;_と表示されています)。
    enter image description here

  4. デフォルトのテキストを削除し、上記のクエリを貼り付けます。

  5. 「実行」をクリックします。
    enter image description here

16
BloodPhilia

1- table1を作成します2- create -------> design queryに移動します。 3-テーブルを閉じる4-上からSQlに移動します。 5-このコードを過ぎて。

ALTER TABLE [TABLE1] ALTER COLUMN [Id] COUNTER(8982,1)

2
muhammad

このWebサイトには、任意の番号で自動番号を開始する非常に簡単な方法があります。 http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp

自動番号フィールドに変更を指示する式を使用してクエリを作成します

「まず、このクエリを実行します。

INSERT INTO tblName(ID)SELECT 999 AS Expr1に挿入

ここで、tblNameはテーブル名、IDはオートナンバー型フィールドの名前です。

次に、2番目のクエリを実行して、挿入した行を削除します。

TblNameから削除WHERE ID = 999;

(または、テーブルを開いて、挿入した行を手動で削除することもできます。)

これで、テーブルに追加された次のレコードに値1000が割り当てられました。

このメソッドは、新しいテーブル、またはオートナンバーがまだSeed値に達していないテーブルで機能します。(もちろん、既存の行のIDフィールドは変更されませんが、後続の行は1000から始めてください。)」

1
George

同様のことを実現する簡単な方法は、自動番号フィールド(「ID」など)と2番目の計算フィールド(「ItemID」など)を用意し、計算フィールドに数式「1000+ [ID]」を入力することです。この新しいフィールドは自動番号フィールドを自動的に追跡するようになりますが、1ではなく1001から始まります。

0
Brent

Accessをだまさなければならないのは、Accessが提供するオートナンバーとは異なるオートナンバーに興味がないと想定しているためです。

テーブルをカスタム自動番号で開始する必要があります。これにはいくつかの設定が必要になります。ただし、いったん追加すると、そこから追加を続けることができます。

Googleの「アクセス変更自動番号開始」には、これを行うためのいくつかのオプションがあります。ほとんどの場合、フィールドを変更するための追加クエリの作成に依存しています。

別の数値から開始するカウンタータイプフィールドを含む最初のテーブルを作成します。レコードを入力しないでください。最初のテーブルのカウンターフィールドと同じ名前を持つ単一の長整数型フィールドを持つ2番目のテーブルを作成します。最初のテーブルでカウンタを開始する数よりも1少ない数を入力して、2番目のテーブルにレコードを作成します。追加クエリを作成し、2番目のテーブルの1つのレコードを最初のテーブルに追加して実行します。2番目のテーブルを削除し、最初のテーブルに追加したレコードを削除して、データの入力を開始します。

MVPS.orgから: http://access.mvps.org/access/tables/tbl0005.htm

追加クエリを作成したくない場合は、常にテーブルを設定し、Excelから1000行のダミーデータをコピーして貼り付け、1001になるまでレコードを削除して、そこから先に進むことができます。

更新:理由の説明を追加

自動番号が1から始まるように設定されている理由は、自動番号フィールドが内部参照フィールドとして使用されることを意図しており、データベースの適切な慣例では、一般に公開されている形式で使用されるべきではないためです。これは、特定のテーブルに一意のアイテムがまだない場合に使用され、テーブルを検索してインデックスを作成できる一意のエントリを作成します。

0
music2myear

これはかなり古いスレッドですが、それでもトップ3のGoogle検索結果としてポップアップ表示されます。

ユーザーが自動採番フィールドの値を変更したい理由の1つは、データベースの編集によって発生したエラーを修正することです。管理者がデータベースのフロントエンドに大きな変更を加える場合、その管理者は関連するすべてのテーブルのコピーを作成し、フロントエンドの開発用コピーをこれらのバックエンドにリダイレクトします。変更が十分であれば、フロントエンドの本番コピーを自分のコピーで置き換えるだけで、テスト後にすべてのリンクテーブルをリダイレクトできます。

問題ありませんよね?まあ、自動番号のインクリメントはフロントエンドのままです。したがって、管理者がコピーで作業しているときに本番側で自動番号を50、500、または5000ずつ増やした場合、新しい本番コピーは同じ番号を再試行することにより、これらのフィールドに項目を入力できなくなります。一度に、「クリア」になるまで。 Excelデータの50、500、または5000行をコピーして貼り付けてみてください。各行にエラーが表示されます(ポップアップが表示されたときにそれ以降のメッセージを表示しないようにしてください)が、自動番号はその分だけ増加し、問題ありません。もう一度行きます。この方法で自動採番を使用している場合は、開発用コピーで上書きする前に、プロダクションデータベースの現在の数値に増分することをお勧めします。

これは、自動番号を1より大きい値から開始する方法でもあります。ジオシティーズホームページでページアクセスカウンターを17,479に設定した昔のように、実際には16回しかアクセスされていませんでした。あなたによって。

0

最初に自動インクリメントの初期ギャップをゼロから任意の値に保つ隠しテーブルを作成することで、カスタムインクリメント範囲を達成できると思います。そのテーブルは0〜1050を保持します。次に、1055、1060、1065などの増分で開始します。次に、データのこの部分をテーブルから非表示にします。お役に立てれば。 Accessは競合が発生するため、最初はゼロから見るように設計されているようです。

0
ssurjie