• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSで日付ごとに自動連番(日付+連番)する方法)

ACCESSで日付ごとに自動連番(日付+連番)する方法

bonaronの回答

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.4

> 自動連番されないのは何が原因なのでしょうか。 過去ログ(http://okwave.jp/qa/q726921.html)のベストアンサーさんの回答に不備があります。 ID フィールドは「テキスト型」でなければいけません。 たまたま、12月だったからうまくいったのですね。 リンク先では > 例)1210001 >   1210002 >   | >   1210100 > 日付は月と日にちで、連番は3桁です。 bicycle5000 さんのご希望 > 例)DATEが5月5日の場合のIDへの記載値 >  0505001 >  0505001←ここが001のまま0505002にしたい。 >  0506001←日付が変われば0506(5月6日)に変わる。 ところが実際には   DATEが5月5日の場合のIDへの記載値   505001 (数値型ですから、頭のゼロは存在しません。"0505001" ではないのです。) リンク先で、 当日で 最大の ID を求めるロジック   AutoID = Format(Date, "mmdd")   MaxID = DMax("ID", "自動採番月日TBL", "Left(ID,4)=" & AutoID) 5月5日の場合   AutoID : "0505"   これを元に MaxID を求めています。   「ID の 左4文字が、 AutoID の値と等しい」 という条件で。   これで、なぜ MaxID が Null になるかお分かりいただけたでしょうか?   ID の 左4文字:"5050"   AutoID :"0505"   これが等しい最大のID は存在しないのです。 12月15日なら   ID の 左4文字:"1215"   AutoID :"1215"   これならうまくいきますね。 長々と書きましたが、修正は2点。 ・ID をテキスト型にする ・MaxID = DMax("ID", "自動採番月日TBL", "Left(ID,4)=" & AutoID)  の抽出条件を テキスト型用に書き換える。 サービス、答えも書いちゃいますね。  MaxID = DMax("ID", "自動採番月日TBL", "Left(ID,4)='" & AutoID & "'")

bicycle5000
質問者

補足

回答ありがとうございます。おかげさまで連番をつくるコードの仕組みは以前より理解が深まりました。 それで早速ためさせて頂いたのですが、なぜか以前と変わらず連番になりませんでした。 AutoIDでは0505という値が入っていることを確認できたのですが、フォームビューのID欄には505001と頭の0がなくなっています。Left(ID,4)で先頭の0が認識されていないのでしょうか?

関連するQ&A

  • ACCESSの自動連番について

    ACCESS2000を使っています。 自動連番を通常すると1・2・3・・・と自動で連番を作成してくれますが、それを日付+連番というものに出来ますでしょうか? 例)1210001   1210002   |   1210100 日付は月と日にちで、連番は3桁です。 数字の連番の方は、日付が変わるとまた1に戻るようにしたいです。 何か良い方法があったら教えてください。

  • アクセスで日付をシリアル値にして使いたい

    アクセス初心者です 日付を入力時に自動でシリアル値を表示したいのですが、VBAなどを使わずに表示させる方法はありませんか? 例 日付         シリアル値 2016年1月2日      42371 みたいな感じです 宜しくお願いいたします

  • アクセス日付時刻の自動入力について。

    アクセス2000を使用しています。 日付入力を自動的に本日の日付で入力出来るように、 =Date()としたのですが、これに、時間もつけるようにしたいのと、表示を、平成**年**月**日**時**分としたいのですが、どのようにすればよいのでしょうか?? ちなみにVBAはむずかしくて使用出来ません。

  • excelの関数かマクロで連番、日付を付けたい

    こんばんわ、EXCELマクロ入門者です。 excelの関数かマクロ、VBAで日付や、連番を付けたいです。 できれば関数でできたらなぁと思います。マクロ、VBAはほとんど初めてです。 (1)まず、B2に商品名を入れます。 (2)すると、A2に連番、C2に今日の日付(システム日付)、 D2に商品名と今日の日付、商品ごとの連番が自動的に振っていく感じにしたいです。毎日たくさん入力するらしいのでマクロとかVBAとか関数で作ってくれと頼まれました。 A列は例えばA3に=if(B3="","",A2+1)を入れて何とかできたのですが、 C列の日付(today関数やnow関数ではファイルを開き直すと日付が変わってしまう)とD列の商品名-日付-商品ごとの連番で特に困っています。 イメージとしては下のような感じです。   A   B    C     D 1 連番 商品名 日付    商品名-日付-商品ごとの連番 2 1   ○○○ 2007/8/10  ○○○-2007/8/10-1 3 2   ××× 2007/8/12  ×××-2007/8/12-1 4 3   △△△ 2007/8/13  △△△-2007/8/13-1 5 4   ○○○ 2007/8/15  ○○○-2007/8/15-2 6 5   ○○○ 2007/8/16  ○○○-2007/8/16-3 どなたか、ご教授ください。 どうぞ、宜しくお願い致します。

  • Access97での日付自動入力について

     「日付」、「顧客名」、「記録(メモ)」の3つのフィールドから構成されるデータベースを作ろうとしています。このうち「日付」の部分に、自動的にレコード入力時の年月日を入れる方法はないでしょうか。

  • Access2000 連番の振り方

    次のようなテーブルに対して連番を振りたいのです。 伝票番号  日付   行番号   金額 00001   2007/01/01  1    1000 00001   2007/01/01  2    1000 00001   2007/01/01  3    1000 00002   2007/01/02  1    1000 00002   2007/01/02  2    1000 00002   2007/01/02  3    1000 以下はこのような状態で続く。 ここで知りたいのは、同日のデータに対しては伝票番号は同じ番号で 行番号のみ連番を振る。 日が変われば伝票番号は次の番号になり、行番号は新たに1から 振りなおすというものです。 クエリーでこのようなことは可能でしょうか。 やはりVBAで組まないと出来ないのでしょうか。 この方法を教えていただきたくお願いいたします。

  • FileMaker Pro日付自動入力

    filemaker pro(8.5)を使っていますが、連番のついた365個のレコードに対して、その順番で来年の365日の日付を自動入力することは可能ですか?

  • エクセルの日付連番について

    不思議なのですが エクセルデータをテキストデータに変換した時の事ですが Write#ステートメントでテキストファイルに書込むと 日付が日付連番の,38745,で書込まれる時と ,#2006-01-28#,が混じって書込まれますがどうしてでしょうか? このテキストファイルをアクセスで加工する時に困るのです よろしくお願いいたします。

  • ACCESS フォームに自動連番をふる

    Accessでテーブル→クエリ→フォームと作成し、フォームから特定条件を指定して データを抽出しました。 その抽出したデータに自動連番をつける方法を教えてください。

  • アクセス97のVBAで日付項目をヌルにする方法

    OS WIN_XP HOME アクセス97 の VBA で、日付項目を初期化(ヌル)に するには、どのように記述すれば良いでしょうか? 例 Dim 売上日 As Date 売上日 = "" 詳細 この様に記述すると、エラーとなります。   日付タイプは、レコード作成時は、規定値を   設定しないと、始めはヌルのままなんですが、   一度日付を設定したが、やっぱりヌルにもどそう   とすると、その方法が分かりません。