プロが教える店舗&オフィスのセキュリティ対策術

Access97 or 2000
VBAでないとダメだと思うのですがVBA初心者です・・。

1001~1050のような決まった範囲内で既存テーブルに採番したいのですが
入力しながらではなく、「採番」ボタンを
押すと既存のテーブルに書きに行きたい、
1050まで採番したら1001に戻りたいというのがあります。

次回処理には続きから採番したいです。

最終番号をセットするようなテーブルを作るような
イメージはわくのですが、どうも書き方がわかりません。

教えて下さい・・。
宜しくお願いします。

A 回答 (2件)

数字に抜けが無いオートナンバーフィールドがあるものとして話をします(なければ後からでも作れる)。



クエリを作成→採番を入れたいテーブル(テーブルAとする)を追加。
テーブルAの全てのフィールドをクエリに追加(テーブルA.*でいいです)。
新規のフィールドをクエリに追加して、フィールド名のところに以下のように記述する(商品コードはテーブルAにあるオートナンバーフィールドと考えてください)。
 採番: ([商品コード]-1) Mod 50+1000
これでこのクエリ(クエリBとする)を開くと採番が追加されていることが確認できるはずです。
テーブルAをレコードソースとして使用しているフォームのレコードソースをクエリBに変えれば採番だけ追加することでそのまま使えます。

と、このようにするとVBAを使わず最小限の変更で採番を追加できるのです。

わからなかったらまた聞いてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
できました!簡単ですね。
でも次回処理時にはまた1000からになってしまうので使用した番号を控えて置かないとだめですよね。

お礼日時:2004/09/05 20:45

レコード件数が70件なら


1001→1050→1001→1020
と進んで行くと言うことですね。

オートナンバー順のクエリーが必要ですね
「オートナンバー順クエリー」をセットしてやって
このRecordsetの最後の番号を拾う
新しいレコードに移る
先ほどの番号に1を足した番号を
NewRecordに書き込む

ただし、1050なら新しいレコードの番号は1001にする。
こんな感じでしょうか・・・。

これを、「採番」ボタンのイベントプロシージャーに
書いてやれば行けると思います。

頑張ってください。

参考URL:http://www.penhagi.net/cgi-bin/otasuke/flashbbs. …
    • good
    • 0
この回答へのお礼

ありがとうございます。
考えているイメージの通りです!
でも書き方が・・わからないです。

お礼日時:2004/09/05 20:44

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