- ベストアンサー
ACCESSのテーブルで、昇順並び替え後、連番フィールドを作成したい
- ACCESSのテーブルで昇順並び替え後、連番フィールドを自動的に振る方法について教えてください。
- 現在、ACCESS2000を使用してデータベースを作成しています。テーブルでは、項目を昇順で並び替えた後に連番を自動的に振りたいです。
- 現在の方法では、エクセルにエクスポートして連番を書き換えた後、再度ACCESSにインポートする必要があります。ACCESS内で完結できる方法はありますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
連番は他のテーブルと関連付けられていないのですよね。 今一つ、連番の使い道がわからないのですが・・・ 連番は数値型で、書式が 00000 になっているものと仮定します。 テーブル名が「Table_A」と仮定します。 また、項目に重複するものがないものとします。 クエリのSQLビューで以下を記述してみてください。 UPDATE Table_A SET 連番 = DCount("項目","Table_A","項目<='" & 項目 & "'"); そして、必要に応じてこの更新クエリを実行します。 連番がテキスト型なら、DCount 部分を Format を使って桁を揃えてみてください。
その他の回答 (1)
- 30246kiku
- ベストアンサー率73% (370/504)
#1です csv出力をどのようにされているかわかりませんが、 (「連番」をテキスト型に変えて) テーブル「Table_A」を連番順にするだけのクエリ「Q_A」を以下内容で作ったとします。 SELECT 連番, 項目 FROM Table_A ORDER BY 連番; csv出力指定で DoCmd.TransferText acExportDelim, , "Q_A", "E:\test\a.csv", True としてみると、作成されたファイル "E:\test\a.csv" の中身は "連番","項目" "00001","ばなな" "00002","みかん" "00003","もも" "00004","りんご" になるようですが。 「連番」が数値型だった場合、クエリを以下にすると、ファイルの中身は一緒になります。 SELECT Format(Table_A.連番,"00000") AS 連番, 項目 FROM Table_A ORDER BY 連番; こういうことではない?のでしょうか。
お礼
SELECT Format(Table_A.連番,"00000") AS 連番, 項目 FROM Table_A ORDER BY 連番; を使用することで、0000が表示されるようになりました。 ありがとうございます。
補足
回答ありがとうございます。 また、説明不足申し訳ございません。 [1]連番は他のテーブルと関連付けられていません。 [2]使い道は、「Table_A」をcsv出力し、それをとあるシステムに取り込む際に必要となるからです。(システムがこの連番でしかソートできない) [3]連番はテキスト型です。 お教えいただいたSQLを実行した結果、バッチリ変更することができました! ありがとうございます。 ただ、連番を00001というふうに書き込むことがどうしてもうまくいきません。(テーブルの定型を使うと、csv出力時には0000が消えてしまう) この部分を解決する方法はありますでしょうか?