shiawasenataiyouアクセスVBAでオートナンバーのように連番を振る方法ツイートシェアはてブLINEPocketアクセス担当のまみです。オートナンバーって便利ですね。自動的に番号を振ってくれる。データ検索やデータ修正の時には大活躍のオートナンバーです。便利なオートナンバーなんだけど、例えば1000から始めたいとか、頭に0をつけたいとか(00005みたいな)そんな時には使えないんです・・・そんな時にはVBAでコードを書いてあげるとオートナンバーのように手動で連番が振れちゃいます。今回はその方法をお伝えしますね。必要に応じてフィールド名を変えたり、削除したりして使用します。(はてな君)オートナンバーってどうして必要なのかわからない(あいちゃん)そうだね。最初はどう使うのかわからないかもね。商品マスターの商品コードや社員マスターの社員番号のように、1つのレコードを特定できるフィールドがある場合は、オートナンバーを使う必要がないんです。商品コードや社員番号って同じ番号が存在しないので、レコードの特定ができるんですね。氏名それから、テーブルやクエリの作成のみの簡易なデーターベースしか使わないような場合もオートナンバーを使う必要がないです。テーブルに存在していても実際には使われていない感じですね。オートナンバーが大活躍するのは、フォームを作成して、データの検索や修正を行うときです。スーパーのレジをイメージしてもらうとわかりやすいでしょうか。はてな君がコーヒーとパンを買いました。店員さんが間違えて紅茶って入力してしまいました。今間違えた紅茶を修正したいんだけど、他にも紅茶を買った人はいるし。この時に、番号が振られていると、特定できるんです。1紅茶で検索すると4件あるし、紅茶と数量1でも2件ある。91って番号があることでレコードの特定ができる。その番号を手動で振ってみましょうってことです。手動で連番を振るでは新規にファイルを「連番」で作成しましょう。ファイルの作成方法は下記の記事をどうぞ!アクセスの使い方!ファイルを開く方法と保存の仕方2018年9月1日テーブル名は「T_連番」にして、デザインビューで開きましょう。「ID」は使用しないので削除し、下記のとおりテーブルを設定しましょう。短いテキスト(はてな君)面白いフィールド名だねぇ。(あいちゃん)実際にはそんなフィールド名にしないだろうけど、これからやろうとしてることがわかりやすいでしょ!次は、フォームにテキストボックス3つとボタンを配置しましょう。詳細は下記の記事をどうぞ!関連記事ボタンの配置方法はこちら!テキストボックスの配置方法はこちら!標題と名前は下記のとおりそろえておきましょう。btn登録それから、3つのテキストボックスはデータ入力用ではないので、さわれないようにしておきましょう。13つのテキストボックスを選択した状態で、プロパティーシートの2「データ」タブから3編集ロックで「はい」を選択します。これで準備は整いました。連番を振ってみましょう。id=2]1からの連番まずは、フォームの読み込み時にコードを追加しましょう。1■フォームを選択した状態で、プロパティーシートの2「イベント」タブを選択し、読み込み時を「イベントプロシージャ」にしてコードの画面を開きます。Sub」の間に下記のコードを追加しましょう。Ifコードをコピーされたい場合は下記の記事を参考にしてください。関連記事コードのコピー(はてな君)Dcoutって前にも出てきた!えっと「T_連番」テーブルにある「連番」の数を数えてくれるんでしょ!(あいちゃん)その通り!「連番」の数が0つまりデータがないときには1を表示してねってことですDMaxって「T_連番」テーブルの「連番」の中で一番大きい値を教えてくれます。大きい値を教えてくれるので、その値に1を足してあげれば良いってことです。フォームには「F_連番」と名前を付けて一度閉じて、表示を確かめてみましょう。(はてな君)あっ1が表示された!では、登録を左クリックしたらテーブルにデータが登録されるようにしていきましょう。1「btn登録」を選択した状態で、プロパティーシートの2「イベント」タブを選択し、クリック時を「イベントプロシージャ」にしてコードの画面を開きます。Sub」の間に下記のコードを追加しましょう。1)データの登録についての詳細は下記の記事にゆずりますね。1)を入れることでカウントが1つずつ増えていきます。次は1000から始まるようにしてみましょう!フォームの読み込み時に下記のコードを追加します。1)」の追加も忘れずに!フォームビューで動作確認してみると!(はてな君)へぇ~「1000」から始まるようにできるんだね!頭に0をつける最後に頭に0をつける方法をお伝えしますね。頭に0をつける場合には、データ型を短いテキストにしておきます。追加するコードは下記のとおりです。“0000”)」の追加も忘れずに!(はてな君)頭に0をつけるのってどうやるのかと思ってた。文字列(短いテキスト)にすればいいんだ。(あいちゃん)数値型だと頭に0が入れられないけど文字列(短いテキスト)なら入れられるので!Accessクエリで連番を振る!文字列と数値型には注意!2018年12月1日まとめ手動で連番を振る方法って知っていると便利です。