プロが教える店舗&オフィスのセキュリティ対策術

はじめまして。

問い合わせのインシデント管理をAccess 2010で行うこととなり、VBAが必要となりました。
下記のようなことができるのか教えていただけたら幸いです。

メインのテーブル
 ┗受付ID(オートナンバー)、受付日時(日付/時刻型)、カテゴリ名(ルックアップ)、ほか

カテゴリのテーブル
 ┗カテゴリID(オートナンバー)、カテゴリ名、カテゴリ_略

  サンプル
  1 Excel EX
  2 Word WD
  3 PowerPoint PP

メインのテーブルを元に入力フォームを作成しました。
そこに配置している【受付日時】とフォームで選択した【カテゴリ名】を元に
日付ごとカテゴリごとの受付番号を取得し、フォームに表示すると共に
メインのテーブルに蓄積したいのですが、可能でしょうか?

テーブルの主キーは受付ID/オートナンバーにしていますが、
それとは別に上記のような受付番号を取得したいのです。
その際に YYYYMMDD_0001_xxx という書式で取得できたらと思っています。

 YYYYMMDD:受付日時の年月日
 4桁の番号は日付が変わるとまた1からカウント
 xxx:カテゴリ_略(カテゴリのテーブルの3列目)

 サンプル:20160725_0001_EX

どうぞよろしくお願いいたします。

A 回答 (2件)

連番が変化しない方がいいと思いテーブルに連番を作成する方法を回答したのですが


クエリで行いたいならこちらを参考に作成してみてください。

http://www.relief.jp/itnote/archives/003569.php
    • good
    • 0
この回答へのお礼

早々にありがとうございます!
おかげさまでなんとできそうです。
本当にありがとうございました。

お礼日時:2016/07/29 11:17

メインのテーブルに「連番」を追加し


フォーム入力時「受付日時」、「カテゴリ名」が変更された時に
DMAXを使い「受付日時」、「カテゴリ名」を条件に一番大きい連番を取得し
+1した値を「連番」に代入する。

基本的にはこれで「受付日時」、「カテゴリ名」ごとに「連番」が増えていきますが
例外などを考えないといけないと思います。
「連番」がすでに入っている場合、
あとで「受付日時」、「カテゴリ名」を変更した場合、
レコードを削除した場合などにどのようにするのかを考えておかないと思ったようには動かないと思います。

YYYYMMDD_0001_xxxには
Format([受付日時],"yyyymmdd") & "_" & Format([連番],"0000") & "_" & [カテゴリ_略]
とつなげれば出せます。
    • good
    • 0
この回答へのお礼

y504様
早々にご回答いただきありがとうございます!
返信が遅れ申し訳ありません。

書式につきましては、できました!
連番につきましては、DMAXというヒントをいただき、ネットで更に調べてみましたが、
エラーが表示されてうまくいきません。。。
条件式をどのように入れればいいか理解できていないせいだと思います。。。
どのような式にすれば連番が取得できますでしょうか。

ちなみに、VBAではなくクエリー上でDMAXを利用してみようと思いましたが、
パラメータエラーが表示されこちらもうまくいきませんでした。
例外につきましては、クエリー上で式にすればリアルタイムで
リアルタイムに変更されていいのかなと思っています。

どうぞよろしくお願いいたします。

お礼日時:2016/07/29 07:23

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