プロが教えるわが家の防犯対策術!

ACCESSで新規レコードを入力時にオートナンバーが自動的につく入力フォームを作りたいと思っています。
その際、特定の文字列+桁数固定のオートナンバーという形になるようにするにはどうすればいいか教えていただけませんでしょうか。

(例)H125-00001

H125-までは固定で、00001の5桁(桁数固定)がオートナンバーでUPしていくようにしたい。
H125-00001→H125-00002→H125-00003・・・といった感じです。

宜しくお願いいたします。

A 回答 (3件)

>しかしフォーム上の埋め込んだサブテーブルでも同じように表示させたいと思い、


>そこの定型入力の欄に同じように設定したのですが、上手くいきません。
>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
のようになるかと思います。
    • good
    • 0

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"に代入していくといったことができればと思っております。
質問時に説明不足で申し訳ございませんでした、何かアドバイスを頂けますでしょうか。
宜しくお願いいたします。

補足日時:2013/05/09 12:39
    • good
    • 0

ご希望の形式の続き番号はエクセルでは容易に作ることができますから、エクセルで作ってアクセスに取り込むようにしたらどうでしょうか。

    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A