• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスのオートナンバーの再設定について)

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

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

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

  • ベストアンサー
  • 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とかはしていません。