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


9

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

1001

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

1001

1002

1003

...

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


5
回答ではありませんが、警告:自動番号はこの方法で管理するようには設計されていません。無数の人々がそれを試すのを見てきました。DBは奇妙なことを時々インクリメントするので(たとえば、失敗した書き込みでも数がインクリメントされるため)、それ機能しません。自動採番は、レコード番号が連続することを保証するものではありませ。実際、まれなケースですが、番号が一意であることは保証されません。小さなテーブルの主キーを作成するのにとても便利です。大きなテーブルの場合は少し危険です。実際のデータフィールドとして使用するのは絶対にひどいです。彼
Bacon Bits

@BaconBits ... AutoNumberは何のために使用されるのですか?
James Mertz、

@BaconBitsのコメントの残りの部分:オートナンバーがそうでないものであると人々が期待するため、何かがナシの形になったときにこのような記事が表示されます。この方法で数値を生成する必要がある場合は、クエリなどをDBに書き込んで、自分で適切に実行してください。
スタックオーバーフローが

回答:


16

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. [作成]タブに移動し、[クエリデザイン]をクリックします
    ここに画像の説明を入力してください

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

  3. [デザイン]タブに移動し、テキスト入力画面が表示されるまで矢印のボタンをクリックします。(デフォルトでは、と表示されていますSELECT;)。
    ここに画像の説明を入力してください

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

  5. 「実行」をクリックします。
    ここに画像の説明を入力してください


良い答えですが、それは新しいテーブルを作成します...または私は間違っていますか?これは、すでに作成されているテーブル内で実行できますか?
James Mertz、

@KronoSが私の回答を更新しました
スタックオーバーフローは

2

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

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


これは、別のキーワードを使用することを除いて、受け入れられた回答と同じように見えます(他の方がはるかに適切にフォーマットされています)。あなたの答えは本当に違いますか?どのように説明できますか?あなたの答えは良いですか?どうして?コメントで返信しないでください。回答を編集して、より明確で完全なものにします。
スコット

ALTER COLUMNイドAUTOINCREMENT(1001,1)とのALTER COLUMN [ID] COUNTER(8982,1)は、ワードAUTOINCREMENTとCOUNTERを参照して、彼らの両方期待どおりに作業が:@Scott実際彼らは少し異なっている
ウィリーウォンカ

1
@willyw:そうです。「別のキーワードを使う以外は同じ」と言った。
スコット

@Scott opsはい、あなたは正しいです...私は速すぎて読みませんでした;-)
willy wonka

1

このウェブサイトは、あなたが望むものは何でも番号を使用してオートナンバー型を開始するための非常に単純な方法があります。 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が割り当てられました。

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


0

Accessをだまさなければならないのは、それが提供するものとは異なる自動番号に興味がないと想定しているからです。

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

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

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

MVPS.orgから: http

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

更新:理由の説明を追加

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


これを行うには、もっと簡単な方法が必要です...
James Mertz、

良いニュースだと思いますが、このような自動採番で複数のテーブルを作成する必要がある場合は、テーブルを作成して「テンプレート」データベースファイルに保存し、必要に応じて新しいデータベースファイルにコピーするだけです。
music2myear

0

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

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

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

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


0

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


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.