dポイントプレゼントキャンペーン実施中!

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

A 回答 (3件)

>もう一つはyes/noのチェックボタンが機能しなくなって、yes/noの表示になってしまったことです。



これに関してですが、バージョン同じものを持ってないので、場所が
 違うかもしれませんが、テーブルのデザインを開き、yes/noのフィールド名へ
カーソルを持っていき、ルックアップをクリックし、「テキストボックス」を
「チェックボックス」に変更すれば戻ります。

>、エクセルデータをインポートしたときにレコードの左側のセルに空白のセルがいくつかでき

これに関しては昇順で数字が出ている列に空白があるということでしょうか?
それともその列の前側に1~複数の列(フィールド)が作成され
テーブルデザインでもそフィールドを除去することができないということ
でしょうか?
前者であれば初期の問題が発生しているデータと何か因果関係は
ありそうですか?あるのであれば、何か見えないごみデータが
邪魔しているため何をしてもだめなのかもしれません。
後者の場合も原因は不明ですが、そのテーブルでクエリを作成し
不要な列を除いてテーブル作成クエリでいけませんでしょうか?

同じMDBでされている場合、そのMDBが壊れている可能性が高いので
新規に空MDBを作り、テーブル・クエリ・フォーム・レポート等を
全てエクスポートしてみるのもひとつの手かもしれません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/09/29 22:22

> 何度オートナンバーを削除して作り直しても同じ結果になります。



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』フィールドを追加して下さい。
(その後、暫定フィールドを削除します)
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/09/28 19:42

私も以前データを壊したことがあり、オートナンバーと


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

こんな感じですが、安全のため、本当は空データベースを作成し
上記をそこで行い、他に影響しないようにしたほうがよいかもしれません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/09/28 19:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!