- ベストアンサー
アクセスで新規にレコードを追加する際自動的に番号をつけたい!
お客さんの名前をアクセスで管理しています。 新しいお客さんを入力するフォームを作ったのですが、 そのフォームを開いたとき、お客さんの番号が自動的に入力 されている状態にしたいのですが、可能でしょうか? 現状では、番号はテキスト型で保存しているんです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
オートナンバー型が駄目ならカウンタテーブルを作りましょう。 テーブル構成 キー テキスト型 サイズ1 カウンタ 整数型 長整数型 で良いでしょう。 それに値 キー カウンタ Y 0 を初期値にしておきます。 ユーザ様登録画面を開いた時に同テーブルのキーYのカウンタを読み取り(SELECT)し結果をワークへ入れます更にカウンタを更新します(UPDATE)このワークの値を編集してお客様番号にしましょう。ここはVBAで作成する必要があります。 なお、複数ユーザ同DBを使用するならばロックテーブルを作成して、同時にカウンタテーブルの読み取りをしない様にしましょう。 VBAはご自分でヘルプを参照しならががんばってください。 INSERTやUPDATEなら簡単な方法なら DoCmd.RunSQL SqlCmd で出来ますよ。 SELECTなら例えば Set rst = dbs.OpenRecordset(SqlCmd, dbOpenDynaset) rst.MoveFast カウンタ = rst.カウンタ とかすれば良いかな 詳しくはヘルプやVBAの本などを参考にされると良いでしょう。
その他の回答 (1)
- ryohei
- ベストアンサー率16% (1/6)
お客さん番号を「オートナンバー形式」にすると、自動で採番されます。 試してみてください。 ただし、他の項目(名前など)を入力しないと、番号は表示されません。 フォームを開いたときに表示するようにするのであれば VBA(モジュール)を作成して、カウンター用のテーブルを作った方が いいのかも知れません。
補足
回答ありがとうございます!オートナンバー形式にしたところ、自動的に番号が振られました。ただ、検索画面を作ったのですが、検索にあたっては、お客さん番号がオートナンバー形式だとうまく動かないんです・・・。そこで、カウンタ用テーブルを作ろうと思うのですが、どのように作ったらよいのでしょうか?大変申し訳ないのですが、教えていただけないでしょうか?あつかましいお願いをしてすみません。よろしくお願いします。
お礼
詳しくて具体的な回答アリガトウございました!! VBAの本なども読みながらがんばりました。すごく参考にさせて 頂いたのに、お礼を忘れていました。 本当に申し訳ありません。