アプリ版:「スタンプのみでお礼する」機能のリリースについて

一時テーブルを作成します。

'一時テーブル枠作成
sSql = "CREATE TABLE 一時テーブル ("
sSql = sSql & " No int IDENTITY (1, 1) NOT NULL, "
sSql = sSql & " 項目1 char (2) NOT NULL ,"
sSql = sSql & " 項目2 char (3) NOT NULL ,"
sSql = sSql & ")"
goRDO_Con.Execute sSql

として作ります。

その後,このテーブルに追加する時
自動的にオートナンバーが振られると思うのですが、
最初に(1)ORDER BY 項目1で追加してオートナンバーを振るとします。

そのあとで、
一度テーブルの中身をDELETEして、
(2)ORDER BY 項目2で追加するときにオートナンバーが前のままなのですが、
何か方法はないでしょうか?

質問の意味が伝わるか心配・・・
とても緊急です。どなたか助けてください。

A 回答 (4件)

私がオートナンバーを使うのは主キーとしてバックエンドで使用する場合のみにしています。


ナンバリングは完全にAccess任せです。
また、オートナンバーの値は絶対にユーザーに見せません。
ユーザーが歯抜け状態の値を見ると「抜けている番号を詰めてほしい」なんて言い出すからです。

どうしても連番のフィールドが欲しいのであればLong型もしくはテキスト型のフィールドを作り、連番を振るロジックを独自に作ってください。

例えば最終番号を別テーブルで管理しておくとか。
連番フィールドで一番大きな値を取得して、それに1を足した値を新規レコードに振るとか。
間を詰めたいのであれば連番フィールドでソートして取得したレコードセットを最初から最後までループさせながら連番を再設定するとか。
    • good
    • 0

私は、元のテーブルと同じものを作っておいて、中身のDELETEじゃなく


DELETEOBJECTして、COPYOBJECTしてました。

でも、処理が途中で止まったりしたら、ファイルが消えたままになるので
あまり有益な手段ではないかも・・・。
    • good
    • 0

まず、データベースの種類はAccess MDBでいいですか?


MDBにRDO使ってる人は見たことないので。

オートナンバーの数字を振りなおすには、MDBを最適化する必要があります。

Accessがインストールされているマシンであれば、Accessを呼び出して最適化をすることが出来ます。

Accessがインストールされていないのであれば、JROを使えば最適化(修復)が出来ます。

参考URL:http://www.microsoft.com/japan/msdn/data/techmat …
    • good
    • 0

こんにちは



オートナンバーの仕様なので、一度振った番号は振りなおません
ACCESSなどで調べてみればわかりますが
10件レコードを新規で作った後、全部削除して
一度テーブルを閉じて、新たにレコードを作ると
11となります。

>一度テーブルの中身をDELETEして、
これはオートナンバーはそのままで、項目1、2だけをクリアすると
いうことですよね?

どういう処理をなさりたいか、わかりませんが
オートナンバー以外に"ソート順ナンバー"という意味の数値フィールドを
設けられる。という事で対処できませんか?
    • good
    • 0

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