Microsoft Accessで下記のようなデータベースを作っています。
テーブル名:TB_受付
テーブルデザイン
受付番号:テキスト型
受付日:日付/時刻型(yyyy/mm/dd)
番号:数値型
コース種類:テキスト型
備考:テキスト型
テーブルイメージ
受付番号 受付日 番号 コース種類 備考
------------------------------------------------------------
20051201受付1 2005/12/01 1
20051201受付2 2005/12/01 2
20051201受付3 2005/12/01 3
・ ・
・ ・
20051202受付1 2005/12/02
というように、受付日が変わると番号が1に戻るような採番をしたいのです。
上記テーブルを元に作成したフォームで、
受付日にはDate関数でその日の日付が入るようにしています。
フォームの更新前処理に下記のコードをいれています。
Private Sub Form_BeforeInsert(Cancel As Integer)
If DCount("番号", "TB_受付") = 0 Then
Me![番号] = "1"
Else
Me![番号] = Format(DMax("番号", "TB_受付") + 1)
End If
End Sub
さらにコース種類の更新後処理に
Me![受付番号]=Format("受付日,"TB_受付")&"受付"&Format("番号","TB_受付")
というコードを書いて日付&番号が、[受付番号]のところに表示されるようにいろいろやっているのですが、日付が変わると番号をリセットさせることがなかなかできません。
VBAはあまり理解できている方ではないのですが、いろいろ検索をしたり調べたりしてたどり着いたのが上記です。
日付でリセットされる採番をするにはあと何をすればよいか、もしくは根本からこうしたほうがいいというのがあれば、とも思うのですが
詳しい方に教えていただけないでしょうか?
No.1ベストアンサー
- 回答日時:
フォームの名前を”受付フォーム”、フォーム上のコントロールを”日付”として説明します。
下記DCountの値は、テーブル"TB_受付”の受付日と”日付”の値とが等しいレコード数+1になります。
Me![番号] = DCount("[番号]", "[TB_受付]", "[受付日]=Forms![受付フォーム]![日付]") + 1
フォーム上のコントロールやどのイベントで処理するかなどは、これの応用で考えてください。
(なお、上記プログラムは、ACCESS97で確認しました。)
早速のご回答をありがとうございます!
コース種類の更新後処理に私が書いていたコードの前にこれを書いたら、うまく行きました!目からうろこです。
教えていただくとなるほど!ととても納得いくのですが、どういう条件にしたらいいかなかなか思いつきません。
2週間ほどいろいろ試していましたが、出来上がってうれしいです。(12月中に作りたかったので)本当に助かりました。
No.3
- 回答日時:
すみません。
Upする前にも考えてのですが、見落としがありました。
> コントロールの更新→フォームの更新
の部分は、
コントロールの更新→フォームの更新→レコードソースの更新
となります。
akipapaさま、Dxakさま
私のつたない質問に早速ご回答いただいてどうもありがとうございました。こんなに早く解決するとは感激です。
また(?)よろしくお願い致します。
No.2
- 回答日時:
更新していく順番を考えて見ましょう。
コントロールの更新→フォームの更新
となってます、要するに「コース種類の更新後処理」では、番号はまだ入っていません。
こういえば、「コース種類の更新後処理」で、如何すればよいかなんとなく想像はつくでしょうか?
「日付が変われば・・・」と言うのは、D系の関数で#1さんが記載するように、条件を追加すれば可能です。
但し、フォームのレコードソースに使用している名前と、フォームのコントロールの名前が一致するとどちらを優先的に値を持ってくるでしょう?
Controls を使用して明示的に記載するか、名前を違うものかにされた方が、よろしいかと思います。
根本的なことを教えていただいてありがとうございます!
コードは上から順番に動いて更新されるのかなぁと思っていました。
フォームの更新に番号をつけても、コース種類の更新後処理では番号が入らなかったわけなんですね。
フォームの更新前処理に私が書いたコードをANo.1の方にご回答いただいたコードに変更しても番号が入らなかったので、??と思ってました。
いれる場所も大事なんですね。
コントロールの更新→フォームの更新→レコードソースの更新
を覚えておくようにします。どうもありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
ACCESSで日付ごとに自動連番(日付+連番)する方法
Access(アクセス)
-
access 自動採番 年が変わるごとに0001に戻る仕組み。
その他(データベース)
-
ACCESSの自動連番について
Access(アクセス)
-
-
4
Access 文字+年ごとの自動採番
その他(データベース)
-
5
Access チェックボックスを使ってレポートへの表示・非表示
その他(データベース)
-
6
Accessで、固定アルファベット+オートナンバーを表示する
Excel(エクセル)
-
7
access 自動採番 「10-AA-0001」にするには。
その他(データベース)
-
8
accessでオートナンバーを使わずに「文字+数字」の自動採番する方法
Access(アクセス)
-
9
accessでの文字列の混ざった連番処理について
Access(アクセス)
-
10
accessのレポートであとから他のテーブルのフィールドを追加する方法
Access(アクセス)
-
11
Accessで文字列の長さによって、フィールドの幅を自動で合わせる方法
Excel(エクセル)
-
12
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
13
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
14
Accessでレコードの保存をせずにフォームを閉じたい
Access(アクセス)
-
15
access 請求番号の自動採番
その他(データベース)
-
16
AccessVBAの値によってチェックボックスの背景色を変えるには?
その他(Microsoft Office)
-
17
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
18
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
19
コンボボックスで入力したものが ID?で表示される
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSでの行番号の自動採番
-
Accessで別テーブルの値をフォ...
-
Accessで日付が変わると番号が...
-
最新の日付とその金額をクエリ...
-
【Access】選択クエリのグルー...
-
〜のような結果を出すためのSQL...
-
SELECT * FROM `生徒名簿` INNE...
-
ファイル書込みで一行もしくは...
-
実績累計の求め方と意味を教え...
-
Oracleでの文字列連結サイズの上限
-
DataGridViewにてセル以外をク...
-
抽出したデータを修正して元の...
-
Excelでセルの書式設定を使用し...
-
改行コード
-
異なるDB間でのJOINやVIEWについて
-
GROUP BYを行った後に結合した...
-
sum()の出力結果順に並び替えを...
-
アクセスでレポートの1印刷内...
-
Accessのクエリでフィールドの...
-
9iのSQL:1999構文を使用した外...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
最新の日付とその金額をクエリ...
-
access 自動採番 年が変わる...
-
Accessでのレコード存在チェック
-
【アクセスVBA】テーブルにフィ...
-
[Access]異なるレコード間の文...
-
Accessで日付が変わると番号が...
-
アクセスで「空き番」の確認
-
サイベースには、オラクルのROW...
-
【Access】選択クエリのグルー...
-
Access:抽出して、色をつけたい。
-
条件をつけて日付の古い行を抜...
-
Access 文字+年ごとの自動採番
-
vba 直前の操作はキャンセルさ...
-
access 自動採番 「10-AA-000...
-
【SQL】existsでの商演算
-
access 請求番号の自動採番
-
Recordset.FindFirstについて
-
MySQLで桁あふれを防ぐ方法
-
ACCESSでの行番号の自動採番
おすすめ情報