日付別の通し番号(連番)を付ける


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vol285

これならわかるマイクロソフトアクセス活用法
            -->日付別の通し番号(連番)を付ける
              
発行者:高内 章治 2017年5月24日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏ 今日の内容 ━━━━━━━━━━━━━━━━━━━━━━━━┓

┃【01 - ご挨拶    】
┃【02 - トピックス  】日付別の通し番号(連番)を付ける

┃【03 - 編集後記    】

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

─────────────────────────────────
【01 - ご挨拶    】          
─────────────────────────────────

こんにちは、高内(こうない)です。

今回は、

「日付別の通し番号(連番)を付ける」

についてお話したいと思います。




─────────────────────────────────

【02 - トピックス】: 日付別の通し番号(連番)を付ける

─────────────────────────────────

お客様から質問がありました。

新規レコードを登録するときに、「項目+連番」で登録したいということです。

こういうケースって多いですね。

例えば、
売り上げ伝票などを作成する場合です。
売上伝票の番号などに連番を作成したい場合です。
通常は、この項目は「主キー」になります。

「主キー」ですので、オートナンバーを使用することもできますが、日付+連番などで作成したい場合があります。

日付などを入れておくと、その売上伝票がいつ作成されたのか把握することが出来ます。

今回は、日付別の通し番号(連番)の作成方法について説明します。

以下のVBAは、毎日の日付別に、3桁の番号を振っています。

今日が、2017年の5月24日ですと、「170524001」、「170524002」などです。

年(2桁)月(2桁)日(2桁)+連番(3桁)です。
yymmdd+001です。

この「主キー」の項目は、全部番号ですが、テキストにしておいた方が良いと思います。

説明をVBAの中に入れています。

「OPE_NO」という項目が、日付別の通し番号(連番)になります。

VBAを使用するときは、「'」のコメントの行は削除してください。


*************************************

Dim MAX_NO As Variant
Dim YR As Variant
Dim MO1 As Variant
Dim DT1 As Variant
Dim ITEM1 As String
Dim NO As Variant
Dim R_MAX_NO As Variant
Dim CNT1 As Long

'今日の日付から年の下の2桁を持ってきます
YR1 = RIGHT(Year(Date), 2)

'今日の日付から月の2桁を持ってきます
MO1 = Format(Month(Date), "00")

'今日の日付から日の2桁を持ってきます
DT1 = Format(Day(Date), "00")

'yymmddの今日の日付を作成します
YMD1 = YR1 + MO1 + DT1

'日付+連番の一番大きいものを取得します
MAX_NO = DMax("OPE_NO", "Q_OPE_INFO")

'日付+連番の一番大きいもの日付を取得します
LEFT_MAX_NO = LEFT(MAX_NO, 6)

'日付+連番の一番大きいものがNullのときは今日+001を取得します

If IsNull(MAX_NO) Or MAX_NO = "" Then

ITEM1 = YMD1 + "001"

'日付+連番の一番大きいものがNullでないときで今日と異なっていれば今日+001を取得します

ElseIf YMD1 <> LEFT_MAX_NO Then

ITEM1 = YMD1 + "001"

'それ以外の処理です。


Else

'日付+連番の一番大きいものの右の3カラムの番号を取得します
R_MAX_NO = Mid(MAX_NO, 7, 3)

'番号を数字に直して1をプラスします
CNT1 = Val(R_MAX_NO) + 1

'日付+番号をテキストにします
ITEM1 = YMD1 + Format(CNT1, "000")

End If


'最後に、作成された日付+番号をOPE_NOに入れます。
Me!OPE_NO = ITEM1

***********************************

番号付けはよく使用します。

参考にしてください。



─────────────────────────────────
【03 - 編集後記    】       
─────────────────────────────────

最近、暑い日が続いています。

北の方でも、30度をこえるところがでてきています。

今日は、少し温度が下がっていますが。

今年も暑くなりそうです。
熱中症に気を付けないといけませんね。


◆私がアクセスをマスターできたのは!!
http://www.sk-access.com/kyozai/zaiko1.html  

テーブル作成からVBAまでマスターできます。 
「在庫管理システムをアクセスで作ってみよう」教材です。
http://www.sk-access.com/kyozai/zaiko2.html  


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●ご意見・ご感想・ご質問
 
『メルマガでもっとお役にたてる情報を配信したいと思いますので、日ごろから疑問に思っていることを教えてください。
宛先はこちらへです』

  •  kohnai★vega.ocn.ne.jp
      (高内:こうない:)
    (メールするときは、★を@に変えてください)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


◎「これならわかるマイクロソフトアクセス活用法」 のバックナンバー・配信停止はこちら

archive.mag2.com/0000222659/index.html

◎以下のホームページからでもバックナンバーを見ることができます。

http://www.sk-access.com/mailmaga/index.html

登録・解除につきましてはご自身でお願いいたします。

※このメールマガジンの転送はOKですが、掲載された記事の内容を許可無く転載することをを禁止させて頂きます。
必ず事前にご相談ください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


1週間でアクセス(Access)のシステム開発ができる〜
「在庫管理システムをアクセスで作ってみよう」教材

「アクセスのプログラム/システムを短期間で開発したい方」、
「アクセスのフォーム/VBAを完全にマスターしたい方」のための
アクセス(Access)を使って1週間でシステム開発する究極の方法とは?

「アクセス(Access)のシステムを無料のSQL Server 2016 Expressへ
移行してみよう」教材

あなたの会社のアクセス(Access)のデータベースやシステムに不安を感じていませんか?
アクセスのデータ量が多くなり処理スピードが遅くなった。
アクセスのデータを共有したい。
セキュリティに不安がある。などと、感じている方は!!
(SQL Server 2016 Expressバージョンです。)


「アクセス(Access)プログラムの仕様書の作り方」教材
マイクロソフトアクセスを使用して、プログラムの作成/システム開発をおこないたい方の為に、
アクセス(Access)のプログラム開発に成功するために絶対に必要な「仕様書」とは?



[↑一番上へ]
[マイクロソフトアクセス活用法(メールマガジン)(ホームへ)]
14:121505

アクセス全体

VBA

SQL Server