Excelをデータベース扱いする機会が多いから、というのも理由の一つですが、いざAccessで処理するようになると、ExcelとAccessの長所短所が比較できて面白いです。
…そんなことはどうでもいいんですが、初歩的なところで壁にぶつかりました。3つの数字を並べたら自動的に日付になおす…というものです。
Excelでは、Date関数を使って簡単に処理できます。
Excel DATE関数でできること |
これをAccessでもやりたいな~と思い、次のように作ってみました。
Access で日付入力 その① |
まず、フォームに必要な要素を配置します。すべてテキストボックスで、年月日それぞれに数値を入力したら、右下のテキストボックスに「2012/9/3」という具合に表示させてみようと思います。
それぞれのテキストボックスには、左上から順に「t_年」「t_月」「t_日」「t_日付」と名前を付けています。連結・非連結については、ここでは省略します。
t_日付のテキストボックスを選択し、プロパティシートのイベントタブから更新後処理を選択、そのままコードビルダーを起動させる。
ビルダーを起動したら、次のプログラムを書き込む。
Private Sub t_年_AfterUpdate()
cbfSetDate
End Sub
Private Sub t_月_AfterUpdate()
cbfSetDate
End Sub
Private Sub t_日_AfterUpdate()
cbfSetDate
End Sub
Private Sub cbfSetDate()
Dim strNewDate As String
'数値の日付データ化
strNewDate = Me!t_年 & "/" & Me!t_月 & "/" & Me!t_日
'エラー入力の対処
If IsDate(strNewDate) Then
Me!t_日付 = CDate(strNewDate)
ElseIf IsNull(Me!t_年) Or IsNull(Me!t_月) Or IsNull(Me!t_日) Then
Me!t_日付 = Null
Else
MsgBox "日付の内容に誤りがあります!", vbOKOnly + vbExclamation
Me!t_日付 = Null
End If
End Sub
数値を入力すると、無事に日付変換してくれました。
Access で日付入力 その② |
また、誤って入力したときのエラーメッセージも、ちゃんと出てきます。
Access で日付入力 その③ |
入力形式や日付の表示形式などをイジれば、かなり実用的なのではないでしょうか。…とはいえ、あんまりこんなことに時間をかけてもいられないんですよね。…これで仕事の効率が格段にあがれば、話は別なんですが…。
そうそう、大事なことを言い忘れてました。このプログラム、T'sWare Access Tips で取り上げています。こちらで教えてもらいました。ここには多くのチップが掲載されていて、いつも重宝しています。
0 件のコメント:
コメントを投稿