• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessの連番(文字+日付+文字))

Access連番の自動振り方

このQ&Aのポイント
  • Accessのフォームで新規入力する際に、特定の形式の連番を自動で振りたいです。
  • 連番の形式は、「Eyymmdd A」で、日が変わると再び「A」から始まります。
  • 煮詰まってしまい、解決策についてご教授いただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

VBAで行わねばなりませんけど大丈夫? 新規入力時に今日の日付と照らし合わせて連番を振る場合です。 昨日の文書の連番や未来の日付の連番は考えてません。 Alt + F11 を押して、VBEに切り替えて メニュー→挿入→標準モジュールにて Function getNewSeq()   If Format(Date, "yymmdd") = Mid(DMax("管理番号", "連絡文書E"), 2, 6) Then     If Right(DMax("管理番号", "連絡文書E"), 1) = "Z" Then       MsgBox "Zまで一杯です"       Exit Function     End If     getNewSeq = "E" & Format(Date, "yymmdd") & " " & _           Chr(Asc(Right(DMax("管理番号", "連絡文書E"), 1)) + 1)   Else     getNewSeq = "E" & Format(Date, "yymmdd") & " " & "A"   End If End Function さらに、フォームでも デザインビューでフォームのプロパティのイベントの、「レコード移動時」に Private Sub Form_Current() If Me.NewRecord Then Me!管理番号 = getNewSeq End If End Sub としてみてください。 ※フォーム名とテーブル名が同じなので、 今後VBAの記述が増えれば、パッと見で分かりにくいので 「フォーム名」連絡文書E→F_連絡文書E とかにしておいた方が宜しいかと。 クエリもね。

noname#151509
質問者

お礼

早速のご教示ありがとうございました ご連絡が大変遅くなりまして申し訳ございません 緊急事態が発生してしまい、本日より改めて対応する所存です またご教示をお願いすると思いますで、 何卒よろしくお願い申し上げます

noname#151509
質問者

補足

お世話になっております 汗かきかきご教示いただいたVBAに取り組んでいますが、 どうしてもデバックがでてしまい、解決方法がわかりません 実行時エラー3078 入力テーブルまたはクエリ’連絡文書E’がみつかりませんでした。そのテーブルやクエリが存在していること、または名前が正しいことを確認してください と、出るので、テーブル、クエリを作成し直したのですが、エラーのままです デバックの箇所は If Format(Date, "yymmdd") = Mid(DMax("管理番号", "連絡文書E"), 2, 6) Then です フォームのプロパティのイベントの「レコード移動時」のコードビルダの入力箇所を フォームをデザインビューで開いた時の詳細連番を振りたいと思っている”管理番号”のテキストボックスのプロパティのイベントの「更新前処理」にしてみたり、 フォームのイベントのビルドのコードビルダにしてみたりしました (思いっきり間違えたことをしているのか??と感じながら(涙)) 恐れ入りますが、何卒ご教示をお願いいたします

関連するQ&A

専門家に質問してみよう