アクセスのオートナンバー再設定について

このQ&Aのポイント
  • アクセスで作成したデータが飛び、バックアップデータを復元してから不具合が発生しました。オートナンバーが正常に機能せず、番号が飛びます。
  • 具体的には、オートナンバーが一定の範囲で連番になっている状態から、途中から飛び番号が出現します。
  • オートナンバーを削除して作り直しても同じ結果になります。主キーとして使用しているため、同じ値を振りたいのですが、解決方法はありますか?
回答を見る
  • ベストアンサー

アクセスのオートナンバーの再設定について

サイトの中をいろいろ調べてみたのですが、いまいちピンとこなく質問をさせてもらいます。 先日、アクセスで作ったデーターが全部飛び、バックアップデーターを拾ってからおかしくなりました。 具体的には、ID(オートナンバー設定)、文書件番号(テキスト)で作っています。 オートナンバーがぐしゃぐしゃになったので、文書件番号と同じ値を振りたくてやったのですが、途中から番号が飛びます。 具体的には、オートナンバーが1~64まで並んだら、次に102~150までならんで、また65~101まで並んで、151からというようになってしまいます。何度オートナンバーを削除して作り直しても同じ結果になります。主キーとして使っています。文書件番号と同じ値を振りたいのですが、どうしたらよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tag1701
  • ベストアンサー率54% (67/123)
回答No.3

>もう一つはyes/noのチェックボタンが機能しなくなって、yes/noの表示になってしまったことです。 これに関してですが、バージョン同じものを持ってないので、場所が  違うかもしれませんが、テーブルのデザインを開き、yes/noのフィールド名へ カーソルを持っていき、ルックアップをクリックし、「テキストボックス」を 「チェックボックス」に変更すれば戻ります。 >、エクセルデータをインポートしたときにレコードの左側のセルに空白のセルがいくつかでき これに関しては昇順で数字が出ている列に空白があるということでしょうか? それともその列の前側に1~複数の列(フィールド)が作成され テーブルデザインでもそフィールドを除去することができないということ でしょうか? 前者であれば初期の問題が発生しているデータと何か因果関係は ありそうですか?あるのであれば、何か見えないごみデータが 邪魔しているため何をしてもだめなのかもしれません。 後者の場合も原因は不明ですが、そのテーブルでクエリを作成し 不要な列を除いてテーブル作成クエリでいけませんでしょうか? 同じMDBでされている場合、そのMDBが壊れている可能性が高いので 新規に空MDBを作り、テーブル・クエリ・フォーム・レポート等を 全てエクスポートしてみるのもひとつの手かもしれません。

macochans
質問者

お礼

いろいろありがとうございました。いろいろクツづりながらなんとか回復しました。番号は合わせられましたが、でもオートナンバーは機能しずです。ちょっと使いにくいですが、なんとか仕事はできそうです。ありがとうございました。

その他の回答 (2)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

> 何度オートナンバーを削除して作り直しても同じ結果になります。 1000~2000件程度のレコードを持つテーブルを作成して確認したところ、 それらしい状況を再現できました。 それを元にして見つけた対処の手順を以下に説明します: 1)対象テーブルをデザインビューで開き、古い『ID』フィールドを削除 2)『文書件番号』のデータ型を「数値型」に変更  ※全処理終了後、テキスト型に戻します。 3)『文書件番号』を主キーに設定  ※これも後で『ID』に主キーを再設定します。 4)テーブルを保存して閉じる 5)メニューの「ツール(T)→データベース ユーティリティ(D)→データベースの   最適化/修復(C)」を選択するなどして、最適化を実行 6)対象テーブルを再びデータシートビューで開き、『ID』フィールドを追加し、  オートナンバー型に設定 7)『ID』を主キーに設定し、『文書件番号』のデータ型をテキスト型に戻す 8)テーブルを保存して閉じる ・・・以上です。 なお、『文書件番号』に「No-1」や「1A」といったプレフィックス/サフィックスが ある場合は、一旦新規フィールド(数値型)を追加した上で、そちらにID相当 分の数字だけを抜き出し(→更新クエリにてLeft/Right関数やMid関数を使用)、 『文書件番号』の代わりにそのフィールドを暫定的な主キーとした上で、 新規の『ID』フィールドを追加して下さい。 (その後、暫定フィールドを削除します)

macochans
質問者

お礼

ありがとうございます。教えられたことを何度もやってはみたのですが、やり方が悪いのか、うまくいきません。アクセスは一番新しいバージョンです。もう少し勉強してみます。ありがとうございました

  • tag1701
  • ベストアンサー率54% (67/123)
回答No.1

私も以前データを壊したことがあり、オートナンバーと 他のテーブルを関連づけていたため困った事がありました。 私が行った方法は、我流でまどろっこしいかもしれませんが、 1)バックアップより文書番号のデータをエクセルに貼る。 2)他の列に文字列の文書番号をvalue関数を使い数字タイプを作る。 3)これをキーにして並べ替えエクセルを一時的に保存する。 4)アクセスで壊れたテーブルをコピーし貼りつける。   (テーブル形式のみの作成を選択する) 5)エクセルのシートをアクセステーブルへインポートする。   (テーブル'SHEET1'が多分作成されると思う。) 6)更新クエリでSHEET1のデータをコピーしたテーブルに   必要な列のみ追加する(この時条件で数値化文書番号を昇順設定しておく) 7)壊れたテーブルを削除。 8)コピーテーブルの名前を削除したテーブル名に直す。 こんな感じですが、安全のため、本当は空データベースを作成し 上記をそこで行い、他に影響しないようにしたほうがよいかもしれません。

macochans
質問者

お礼

ありがとうございます。エクセルに戻して、やってみると、二つの問題が起きました。 1つは、エクセルデータをインポートしたときにレコードの左側のセルに空白のセルがいくつかでき、消すことができないことです。 もう一つはyes/noのチェックボタンが機能しなくなって、yes/noの表示になってしまったことです。 文書件番号は「1」から振っているだけで、001とか1-Aとかはしていません。

関連するQ&A

  • アクセスのオートナンバー

    XPのアクセスを使っています。 オートナンバーに主キーが設定されています。 データを入力するとオートナンバーが「1・2・3~」と振られていきますが、もし「3」のデータを消去すると「1・2・4~」となります。 私的にはツメて「1・2・3~」となって欲しいのですが無理なのでしょうか?オートナンバーとはそういうもの? アクセス超初心者ですのでよろしくお願いいたします。

  • access2000 オートナンバーでマイナス??

    こんにちは。レプリケーションでデータを追加していると、-158694322とかという番号がオートナンバーで出てきます。特に大きな問題は無いとは思うのですが、主キーを置いているところなので怖いです。一度、主キーを変えてオートナンバーの番号をそろえてみたのですが、その後データを追加するとまたマイナスや非常に大きな番号が出てしまいます。何か対処法・問題点等ありませんでしょうか?

  • アクセスのオートナンバーが飛びすぎに

    過去の質問検索で、うまく見つけられませんでしたので質問させてください。 【状況】 ・10000件ほどレコードがあります。 ・レコードの項目にはオートナンバーがふられていて、それが主キーになっております。 ・データベースは私が作ったものではありません ・しかも私はアクセス初心者で、最初から作り直せるようなものではありません ・データベースはアクセス2000です 【困っている事】 具体的な数字を例にあげて説明します。 今までは入力すると10000件目の次は10001番と当然番号がついていたのですが、先週に「ファイルのインポート」機能を使って300件追加して、本日入力を再開したら、本来は10301番と番号をふられるハズが80001435番、みたいな大幅に飛んだ番号を振るようになりました。 【どう解決したいか】 既存の今までのデータは10300件までキレイに番号をふられて揃っている為、次の入力を10301から始まるようにしたいです。 ※補足必要であれば聞いてください

  • Access2003 データ型 オートナンバーについて エクセルからテ

    Access2003 データ型 オートナンバーについて エクセルからテーブルをインポートする方法 主キーである、IDと名をつけたフィールドのデータ型は"オートナンバー"でレコード新規入力際、自動で番号がふられていくようにしています。 このテーブルにエクセルのレコードをインポートして追加したいのですが、インポートできません。 ※オートナンバーフィールドが原因と思われます。 どうすれば、エクセルからこのテーブルにレコードをインポートし、追加されたレコードにオートナンバーで番号を割り振る事が出来ますででしょうか? 最も、シンプルな方法をお教え願います。

  • Access2003オートナンバーを任意の値に

    Access2003で、オートナンバーでID番号の管理(主キー)をしています。 このID番号の他に、10桁の数値でプロジェクト管理したいと思っております。 オートナンバーを基に、別IDを作成する方法を教えてください。 なお、この10桁の数値は、先頭の4桁がプロジェクト番号として使用し、 後ろの6桁はオートナンバーのIDと同じ数値となります。 ======================================== (例)  [ID]     [ID2]   1    1001000001   2    1001000002   3    1001000003   〃       〃 ======================================== 下記のURLを参考にしてやってみたのですが、追加クエリを実行しても、 なぜか、オートナンバーフィールドへ追加することができませんでした。 ※追加クエリ実行エラーで、「型変換エラーのためnullに設定しました」となります。 http://www.accessclub.jp/samplefile/samplefile_145.htm お手数お掛けしますが、宜しくお願い致します。

  • アクセスのオートナンバーの法則

    アクセスのオートナンバーについての質問です。 いま、1~100までのオートナンバーで付番されたIDを持った顧客データがあって 101件目を間違えて削除してしまい、その次に入力をしたデータは102番になってしまうため、 欠番を埋めるために、ここでも紹介されている、オートナンバー再設定の方法を行いました。 すると、今までついていた1~100までの番号が、どういう法則かわからないのですが順番がぐちゃぐちゃになって付番されてしまいます。 これを、1から100までの数字は変えず、最後の欠番1こ分だけ詰めて、新しいデータを101番から付番させたいのですが、どうしたらよいのでしょうか。 解決方法ご存知の方ぜひ教えてください。 よろしくお願いします。

  • ACCESS2000のオートナンバー型について

    OSはWIN98です。ACCESS2000です。 ACCESS2000にてテーブルの主キーのフィールド(追番)に オートナンバー型を設定しました。 テーブルにデータを仮に100書きこんだとします。 その後に、その100個のデータを削除します。 そして、削除された後の最初のレコードにデータを 書きこもうとすると追番のフィールドが "101" に なってしまいます。新たに書きこむ時に追番を "1" にすることはできないでしょうか? 皆様よろしくお願いします。

  • Access 2010で重複したオートナンバーが

    Access 2010で重複したオートナンバーが振られてしまいます。 既に5325という値があっても、さらにその番号が振られてしまいます。 こんなことってあるのでしょうか?

  • 主キーはオートナンバー型のIDを使った方が良いのか

    主キーはオートナンバー型のIDを使った方が良いのか、 独自の主キーを作った方がいいのか? 今は テーブル1 ------------------- IDフィールド(オートナンバー型) 主キー 1 2 3 ------------------- 伝票番号フィールド A001 A001 A002 ------------------- 部署フィールド 営業部 システム部 営業部 ------------------- 金額フィールド 100 200 300 ------------------- という状態ですが、 新たに主キーフィールドを作り 更新クエリで UPDATE テーブル1 SET テーブル1.主キー = [テーブル1]![伝票番号] & [テーブル1]![部署] & [テーブル1]![金額]; をして、主キーを独自に作った方がいいのか。 アクセスを作るにおいて、どちらの方が良いのでしょうか? テーブルのレコードは削除したりする事もあるので、オートナンバー型だと空きができてしまいます。 レコードに空きができないデータベースなら、オートナンバー型、 空きができるデータベースなら、独自に作った主キーにしたほうがいいのでしょうか?

  • Accessのオートナンバー型について

    Accessのオートナンバー型についての質問です。 ある項目をオートナンバー型にしているのですが、 何かの拍子で番号が変化してしまったようです。 たとえば当初は4の番号が7に変わったというようにです。 このようなことはよくあるものなのでしょうか。 これを防ぐ手立てなどありますでしょうか。

専門家に質問してみよう