
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で質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- 数学 これは『通し番号』といいますか? 例として、 ・A地区 ・B地区 ・C地区 からの、苦情受付番号をつ 1 2022/06/30 13:55
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- 郵便・宅配 佐川急便の不在連絡票で「電話番号でお問い合わせお願いします」と書かれて担当者名・電話番号はあるのです 2 2022/04/14 11:10
- 防犯・セキュリティ 私のケータイ番号が、何者かによって 付箋メモ帳に書かれ 色んな所に貼られているそうです。 知らない番 1 2022/09/22 00:52
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESSで日付ごとに自動連番(日付+連番)する方法
Access(アクセス)
-
access 自動採番 年が変わるごとに0001に戻る仕組み。
その他(データベース)
-
ACCESSの自動連番について
Access(アクセス)
-
-
4
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
5
accessでオートナンバーを使わずに「文字+数字」の自動採番する方法
Access(アクセス)
-
6
Access 文字+年ごとの自動採番
その他(データベース)
-
7
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
8
Access DCountでの連番について
Access(アクセス)
-
9
accessテーブル作成クエリを実行したときにオートNo(のような)振る方法
その他(データベース)
-
10
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
11
ACCESS クエリで1から順番に番号を表示したい
Access(アクセス)
-
12
「Access」のフォームで、同じデータの入力の手間を省くには?
Access(アクセス)
-
13
Access ¥マークを表示しない
Excel(エクセル)
-
14
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
15
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
16
access 自動採番 「10-AA-0001」にするには。
その他(データベース)
-
17
(ACCESS)条件に応じて、テキストボックスを表示・非表示設定
その他(データベース)
-
18
Accessのフォームでテキストボックスの文字を点滅させるには?
Access(アクセス)
-
19
マクロで待機時間を作りたい
Access(アクセス)
-
20
Accessの桁区切りについて教えてください。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLについての質問
-
access 自動採番 「10-AA-000...
-
access2003で学籍番号から生徒...
-
〜のような結果を出すためのSQL...
-
アクセスで挿入時のVALUES以下...
-
アクセスで受付番号簿を作ろう...
-
Accessで別テーブルの値をフォ...
-
SQLでの集計方法について
-
最新の日付とその金額をクエリ...
-
SQLサーバのデータをエクセルに...
-
クライアントからのDBアクセス
-
一度に連結したデータをSELECT...
-
------------------------------
-
実績累計の求め方と意味を教え...
-
DataGridViewの、選択されてい...
-
Accessのクエリでフィールドの...
-
同じ表内の比較
-
アクセスで重複のカウント
-
日付データの抽出方法を教えて...
-
ACCESS2000 コンボボックス絞込み
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
最新の日付とその金額をクエリ...
-
【アクセスVBA】テーブルにフィ...
-
access 自動採番 年が変わる...
-
Accessで日付が変わると番号が...
-
Accessでのレコード存在チェック
-
Recordset.FindFirstについて
-
vba 直前の操作はキャンセルさ...
-
access 自動採番 「10-AA-000...
-
Access 文字+年ごとの自動採番
-
アクセスで「空き番」の確認
-
[Access]異なるレコード間の文...
-
条件をつけて日付の古い行を抜...
-
【Access】選択クエリのグルー...
-
Access:抽出して、色をつけたい。
-
ACCESSでの行番号の自動採番
-
Access VBAで更新履歴を追いたい
-
sqlで質問です。 Aテーブルの登...
-
Oracle 8i に入っている値が、...
-
質問です。 下記のテーブルとデ...
おすすめ情報