- 締切済み
ACCESSでオートナンバーを任意の書式で付けたい
ACCESSで新規レコードを入力時にオートナンバーが自動的につく入力フォームを作りたいと思っています。 その際、特定の文字列+桁数固定のオートナンバーという形になるようにするにはどうすればいいか教えていただけませんでしょうか。 (例)H125-00001 H125-までは固定で、00001の5桁(桁数固定)がオートナンバーでUPしていくようにしたい。 H125-00001→H125-00002→H125-00003・・・といった感じです。 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nicotinism
- ベストアンサー率70% (1019/1452)
>しかしフォーム上の埋め込んだサブテーブルでも同じように表示させたいと思い、 >そこの定型入力の欄に同じように設定したのですが、上手くいきません。 >H125-00001とならずにH125-____1となってしまいます。本来0が入るべきところが空白となります。 定型入力は個人的に好きでないのでほとんど使ったためしが無いのです。(^_^;) 定型入力はそのままにして、規定値に、"H125-00000" としておくとか。 (私は見当違いのことを考えているかも) >また、見かけ上ではなく実際のテキストとして登録することはできないものでしょうか。 なら、テーブルのオートナンバー型の書式設定は空欄に戻します。 オートナンバー型のフィールド名を、「A」としたら クエリのデザインビューで、 A|AA:"H125-" & format(A,"00000") のようにしておけば、今後はクエリの「AA」フィールドを対象に検索を行えば良いかとは思いますが インデックスが効かないので検索結果が出るまで遅くなります。 テーブルのフィールドに、H125-00001 そのものを格納し 新規レコードではあたかもオートナンバーのように増やしたいなら 「A」をオートナンバー型からテキスト型に変更して VBAでの処理になります。 フォームのレコード移動時イベントに If me.newrecord then me!A = "H125-" & format(clng(right(nz(dmax("A","テーブル名"),0),5))+1,"00000") end if のようになるかと思います。
- nicotinism
- ベストアンサー率70% (1019/1452)
H125- の固定でよろしければ、 テーブルをデザインビューで開き、オートナンバー型フィールドの書式に "H125-"00000 とすれば良いんじゃないですか。 見た目はH125-00001 などとなってはいますが内部的なデータの扱いは 数値型(Long)のままなので、1 などになっています。 たとえば、クエリで、H125-00001 だけを抽出したい場合は、 抽出条件に、"H125-00001" ではなくて、1 とだけにします。 ホントは、H125- だけではなくて、Q336- とか J111- とかも・・・となるなら Access Dmax 採番 辺りをキーワードにしてGoogleってみてください。
ご希望の形式の続き番号はエクセルでは容易に作ることができますから、エクセルで作ってアクセスに取り込むようにしたらどうでしょうか。
補足
ご教授有難うございます。 教えて頂いたとおり設定しましたところ、テーブルでちゃんと表示できました。 しかしフォーム上の埋め込んだサブテーブルでも同じように表示させたいと思い、そこの定型入力の欄に同じように設定したのですが、上手くいきません。 H125-00001とならずにH125-____1となってしまいます。本来0が入るべきところが空白となります。 また、見かけ上ではなく実際のテキストとして登録することはできないものでしょうか。(これをキーとして検索に使いたいです。)例えばテーブルの”ID”フィールドは通常のオートナンバーで、別に”受注NO”というフィールドを作り入力フォーム上でレコード追加時にH125-00001と加工したものを"受注NO"に代入していくといったことができればと思っております。 質問時に説明不足で申し訳ございませんでした、何かアドバイスを頂けますでしょうか。 宜しくお願いいたします。