OSはWIN98です。ACCESS2000です。

ACCESS2000にてテーブルの主キーのフィールド(追番)に
オートナンバー型を設定しました。

テーブルにデータを仮に100書きこんだとします。
その後に、その100個のデータを削除します。

そして、削除された後の最初のレコードにデータを
書きこもうとすると追番のフィールドが "101" に

なってしまいます。新たに書きこむ時に追番を "1"
にすることはできないでしょうか?

皆様よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

レコードを削除後、そのテーブルが含まれるデータベースを最適化すれば初期値の1から始まります。

    • good
    • 0
この回答へのお礼

早速やってみると見事に1からはじまりました

本当にありがとうございました。

お礼日時:2001/11/28 22:33

列を一旦削除して、もう一度作成してください。



リレーションも削除されますので再度設定してください。

頻繁にやるようであれば、SQLで作成して実行してください。
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

QAccess2000のテーブルのフィールドについて

Accessのテーブル設計で困っています。

担当者マスターテーブルに担当者CD(主キー)と担当者名のフィールドが入っています。取引先マスターテーブルには取引先CD、取引先名、担当者を2名いれたいのですが、どのようにしたらいいかわかりません。ひとつの取引先に2名の担当者がいる場合どのように管理をしたらいいでしょうか。1つの取引先に対し、1名の担当者だったら、担当者CDをいれクエリで出すことが出来るのですが、2名となるとどうなのでしょう?
どなたかご教示ください!よろしくお願いいたします。

Aベストアンサー

すみません。言葉が足りなかったようで。

担当者マスターテーブルは一つでいいです。

クエリを作成するときに、2回いれてください。

識別するために、同じテーブルですが、末尾に「1」がついた形で表示されます。それは気にしなくて良いです。って事です。

QACCESSのテーブルで、昇順並び替え後、連番フィールドを作成したい

表題の通りなのですが、
今現在ACCESS2000を使ってデータベースを作成しています。
その際、
----------------------
連番  項目
00001  りんご
00002  ばなな
00003  みかん
00004  もも
----------------------
というようなテーブルで[項目]を昇順で並び替え後、
連番が自動的に振られるようなクエリ(無理そうならその他の方法でも)を作成したいと思っています。

今現在はクエリで以下のように昇順で並び替えられたものを、
----------------------
連番  項目
00002  ばなな
00003  みかん
00004  もも
00001  りんご
----------------------
一旦エクセルにエクスポートして、オートフィルで[連番]を書き換え後、再度ACCESSにインポートし以下のような完成形にもっていっています。
----------------------
連番  項目
00001  ばなな
00002  みかん
00003  もも
00004  りんご
----------------------

しかし、頻繁に[項目]書き換え・追加のあるデータベースなので、結構な時間を費やしてしまい、とても効率が良いとはいえない状態です。

どうにかACCESS内で完結できる方法はないものでしょうか?

ご享受の程よろしくお願いいたします。

表題の通りなのですが、
今現在ACCESS2000を使ってデータベースを作成しています。
その際、
----------------------
連番  項目
00001  りんご
00002  ばなな
00003  みかん
00004  もも
----------------------
というようなテーブルで[項目]を昇順で並び替え後、
連番が自動的に振られるようなクエリ(無理そうならその他の方法でも)を作成したいと思っています。

今現在はクエリで以下のように昇順で並び替えられたものを、
----------------------
連番  項目
00002  ばなな
...続きを読む

Aベストアンサー

連番は他のテーブルと関連付けられていないのですよね。
今一つ、連番の使い道がわからないのですが・・・

連番は数値型で、書式が 00000 になっているものと仮定します。
テーブル名が「Table_A」と仮定します。
また、項目に重複するものがないものとします。

クエリのSQLビューで以下を記述してみてください。

UPDATE Table_A SET 連番 = DCount("項目","Table_A","項目<='" & 項目 & "'");

そして、必要に応じてこの更新クエリを実行します。


連番がテキスト型なら、DCount 部分を Format を使って桁を揃えてみてください。

QAccess2003であるフィールドの値に対して、あるフィールドの参照テーブルを選ぶ?、切り替える。?

Access2003を使っています。
あるフィールドの値に対して、あるフィールドの参照テーブルを選ぶ?、切り替える。?みたいな事をやりたいのですが、なにぶん初心者でどうしたら良いかわからず、何を勉強すれば良いかもわからないので、良きアドバイスを。

補足ですが、受注管理のできる物を製作しようとしています。

受注管理をクエリで製作してみました。
その中で、ルックアップを使って、得意先、製品情報等を入力出来る様しましたが、得意先を先に指定すると、製品情報の所のルックアップが各得意先別の製品情報のテーブルから選べる一覧にしたいのです。

言いたい事わかるでしょうか。?

Aベストアンサー

う~ん、言いたいことは判りますが・・・回答していることが理解できるかは、別で、とりあえず回答してみるということで・・・

例の通り
> 得意先を先に指定すると、製品情報の所のルックアップが・・・
と、すれば
まずは、「製品情報」のコンボボックスの「値集合ソース」にフォーム上の「得意先」を条件に抽出可能な様にSQLを作る
(ビルダーを使えば簡単に出来ます)
現在のままでは、「得意先」を変更しても、初期にあった「得意先」で抽出されたものから、「値集合ソース」が更新されないので・・・
「製品情報」の「フォーカス取得時」に

Private Sub [製品情報のコントロール名]_Enter()
ME.[製品情報のコントロール名].Requery
End Sub

と記述、これで「製品情報」のコンボボックスが「フォーカス取得」するたびに、先に設定した「得意先」を条件とした「集合ソース」のリストを更新します

で、理解可能ですか?

QAccess]2つのテーブルを比較してフィールドの一部が一致したデータを抽出

2つの名簿テーブルを比較してどちらのテーブルにも含まれている個人を抽出したいと考えております。

テーブル名とフィールドは以下のとおりです。

====================
テーブル名「名簿A」

氏名
電話番号
住所
メールアドレス
====================
テーブル名「名簿B」



電話番号
住所
メールアドレス
====================

たとえば、この2つの名簿をメールアドレスで一致したものを抽出する場合は選択クエリのデザインビューで「名簿A」のフィールドを読み込ませ、
メールアドレスフィールドの抽出条件として

Like [名簿B].[メールアドレス]

を入れれば抽出ができたのですが、メールアドレスは、名簿ごとに記入されていたりしなかったりするので、名前での一致を行いたいと思っています。

ここで問題なのが、名簿Aは「氏名」で入力されているのに対し、名簿Bでは「姓」と「名」が別フィールドになっております。

そこで自分なりにやってみたのが、選択クエリのデザインビューで「氏名」のフィールドの抽出条件として

Like (*[名簿B].[姓]*)

を設定するものでした。
これがうまくいけば最終的には

Like (*[名簿B].[姓]*) And Like (*[名簿B].[名]*)

という風にして、名簿Aの「氏名」フィールドに名簿Bの「姓」も「名」も入っているものを抽出できるかな?と考えたのですが、上記のように入力すると、自動的に

Like ("*[名簿B].[姓]*")

となってしまい、何も抽出されなくなってしまいました。

このような方法では希望する抽出は行えないのでしょうか?

お分かりのかた、よろしくお願いいたします。

2つの名簿テーブルを比較してどちらのテーブルにも含まれている個人を抽出したいと考えております。

テーブル名とフィールドは以下のとおりです。

====================
テーブル名「名簿A」

氏名
電話番号
住所
メールアドレス
====================
テーブル名「名簿B」



電話番号
住所
メールアドレス
====================

たとえば、この2つの名簿をメールアドレスで一致したものを抽出する場合は選択クエリのデザインビューで「名簿A」のフィールドを読み込ませ、
メール...続きを読む

Aベストアンサー

> 名簿Aの「氏名」欄には姓と名の間にスペースが入っているものがあり

[名簿B].[姓] & [名簿B].[名]を使った時のクエリで考えてみます。

クエリをSQLビューで表示した時、抽出条件のところは

[名簿A].[名前] Like [名簿B].[姓] & [名簿B].[名]
とか
[名簿A].[名前] = [名簿B].[姓] & [名簿B].[名]

になっていると思います。

[名簿A].[名前]の部分に細工して、Replace([名簿A].[名前]," ","")に書き換えます。
(Replace で空白を削除してあげます)

それをもとに
Replace([名簿A].[名前]," ","") = [名簿B].[姓] & [名簿B].[名]
としてみるとどうなりますか。


※バージョンによっては、クエリ内で Replace が使えないものがあったかと思います。
その時には、補足なりに記述してください。
(対処方法はあります)

Qフィールド数の多すぎる・フィールド数が一定でないテーブルのデータ結合の仕方?

私は、accessについてあまり詳しくないものなのですが、仕事上50近くあるデータを一つにまとめたいんです。
データは2つありまして、
1.それぞれのテーブルが微妙にフィールド数が異なる場合の結合
 例)・Aのテーブルのフィールド名 
   名前 クラス名 出身県 出身コード 血液型 性別
   
   ・Bのテーブルのフィールド名
   名前 出身県 血液型 性別

   ・Cのテーブルのフィールド名
   名前 クラス名 出身コード 血液型 
  ⇒このように微妙に異なる。しかもレコード数がかなり多いのです。これは、ユニオンクエリは使えないですよね?何かいい方法はないでしょうか?


2.テーブルの構造は同じなのですが、フィールド数が多くてユニオンクエリを使おうとすると、『フィールド数が多すぎる』とエラーメッセージがでてしまう。この場合の対処方法でいいのはないでしょうか?

なにぶん、私はaccessをあまり使わないのでわかりにくい質問だと思いますが、どなたかすみませんが教えてください。お願いします。

Aベストアンサー

> これは、ユニオンクエリは使えないですよね?

ユニオンクエリで、フィールドを「*」で省略することはできなくなりますが、
表示するフィールドを列挙する形であれば、対応可能です。
(但し各Select文で、不足するフィールド分のダミー列の追加が必要)

【例】
Select 名前, クラス名, 出身県, 出身コード, 血液型, 性別 From A
Union
Select 名前, "(不明)", 出身県, "(不明)", 血液型, 性別 From B
Union
Select 名前, クラス名, "(不明)", 出身コード, 血液型, "(不明)" From C;

※当該テーブルがデータを持たない時に「(不明)」と表示させる場合。


> 『フィールド数が多すぎる』とエラーメッセージがでてしまう。

とりあえず、45フィールドほどのテーブルを作成してテストした限りでは、
そのメッセージは表示されませんでした(汗)

もしも、必ずしも常に全フィールドのデータが必要ではないなら、ひとつの
手段としては、上記のように必要なフィールドに限定してユニオンクエリを
作成する、という方法があるかと思います。
(一旦作業用のテーブルを作成し、これに順次、追加クエリで他のテーブル
のデータを追加、というのも考えましたが、なんとなくこちらでも同様に
フィールド数の上限を超えてしまいそう・・・(汗))


あまりお役に立てそうにありませんが(汗)、参考までに。

> これは、ユニオンクエリは使えないですよね?

ユニオンクエリで、フィールドを「*」で省略することはできなくなりますが、
表示するフィールドを列挙する形であれば、対応可能です。
(但し各Select文で、不足するフィールド分のダミー列の追加が必要)

【例】
Select 名前, クラス名, 出身県, 出身コード, 血液型, 性別 From A
Union
Select 名前, "(不明)", 出身県, "(不明)", 血液型, 性別 From B
Union
Select 名前, クラス名, "(不明)", 出身コード, 血液型, "(不明)" From C;

※当該テーブル...続きを読む


人気Q&Aランキング

おすすめ情報