2009/03/11
Access 実践入門 第80号
-------------------------------------------
Access 実践入門 第80号 (2009.3.11)
-------------------------------------------
こんにちは、Access実践入門の佐藤です。
3月は年度の最後の月ですから、
決算やら、予算やらで、事務の仕事はお忙しいでしょう。
頑張ってくださいね
【1】締切更新処理1
【2】締切更新処理2
【3】次回予告
【4】編集後記
---------------------------------------------------------------------
【1】締切更新処理1
---------------------------------------------------------------------
締切更新処理は、残高を更新して、指定日以前のデータを削除する処理です
請求書発行のプログラムなどでは、データ数が多くなると、
処理が遅くなりますから、更新処理でデータを少なくする必要があります。
小遣帳では、データ数などは気にしなくてもいいのですが、
更新処理の内容を説明するために作成しています。
フォーム「fo締切更新指定」をみてください。
入力用の、コントロールと、
日付型のデータを入れるコントロール
があります。
日付入力のコントロール「締切日指定」の「フォーカス喪失時」
の次のように書いています。
If IsNull([締切日指定]) Then
Exit Sub
End If
If Len([締切日指定]) <> 11 Then
MsgBox "年は4桁、月は2桁、日は2桁の入力です。", , ""
DoCmd.CancelEvent
Exit Sub
End If
If IsDate([締切日指定]) = 0 Then
MsgBox "この日付の入力は間違っています。", , ""
DoCmd.CancelEvent
Exit Sub
End If
If DateValue([締切日指定]) <= DLookup("[締切日付]", "ta基本情報",
"[通し番号]=1") Then
MsgBox "締切日より以前は指定できません。"
DoCmd.CancelEvent
DoCmd.GoToControl "締切日指定"
Exit Sub
End If
[締切日付指定] = DateValue([締切日指定])
空白の場合は、何もしません。
でないと、フォームを開いて、何もしないで戻ろうとする時に
戻れなくなります。
データが何か入力された場合に次のチェック等をします
まず、桁数をチェックします。
西暦4桁+年+月2桁+月+日2桁+日の全部埋まれば、
11桁になります。
次に正しい年月日が入力されたかどうかチェックします。
これは、IsDate関数で調べます。
次に、現在の締切更新日より以前の場合は、
指定できないようにしています。
チェックが終わったら、
締切日付指定に、入力した日付を日付型にしてして、代入しておきます
【2】締切更新処理2
---------------------------------------------------------------------
実行ボタンの「フォーカス取得時」に
次のように書いています
If IsNull([締切日指定]) Then
MsgBox "日付を入力して下さい。"
DoCmd.CancelEvent
DoCmd.GoToControl "締切日指定"
Exit Sub
End If
[締切日付指定] = DateValue([締切日指定])
日付が、入力されていなければ、
指定コントロールに戻します。
念のため、ここでも
締切日付指定に、入力した日付を日付型にしてして、代入しておきます
(必要ないのですが・・・)
実行ボタンの「クリック時」で、
モジュールの kousin を呼び出しています
モジュールの内容です。
------------------------------------------------------------
Public Function kousin()
Dim dbs As Database
Dim rst_1 As Recordset
Dim cd As String
Dim simeb As Date, simea As Date
Dim zan As Long
DoCmd.OpenForm "fo基本情報", , , , , acHidden
simeb = Forms![fo基本情報]![締切日付]
zan = Forms![fo基本情報]![締切残高]
simea = Forms![fo締切更新指定]![締切日付指定]
Set dbs = CurrentDb
Set rst_1 = dbs.OpenRecordset("ta帳簿", dbOpenDynaset)
rst_1.MoveFirst
Do Until rst_1.EOF
If rst_1!処理日付 > simeb And rst_1!処理日付 < simea Then
zan = zan + rst_1!収入額 - rst_1!費用額
End If
rst_1.MoveNext
Loop
DoCmd.OpenQuery "qu更新後帳簿削除"
Forms![fo基本情報]![締切日] = Forms![fo締切更新指定]![締切日指定]
Forms![fo基本情報]![締切日付] = Forms![fo締切更新指定]![締切日付指定]
Forms![fo基本情報]![締切残高] = zan
rst_1.Close
DoCmd.Close acForm, "fo基本情報"
DoCmd.Close acForm, "fo締切更新指定"
MsgBox ("更新しました...")
End Function
------------------------------------------------------------
フォーム「fo基本情報」を非表示で開いています。
フォームを参照して、
現在の締切日付、締切残高を変数に入れます。
今回指定した、締切日付も変数に入れます
「ta帳簿」を1レコードずつ読んでいきます。
指定した日付より前で、かつ、締切日より後なら
残高に金額を収入ならプラス、費用ならマイナスします
最後のレコードまで終わったら、
削除クエリ「qu更新後帳簿削除」で
今回の指定日より以前のデータを削除します。
基本情報のそれぞれの値を今回の指定したものに
更新します。
すべて閉じます。
メッセージを表示して、終わったことを知らせます
以上で締切更新処理が終わりました
【3】次回予告
---------------------------------------------------------------------
次回は、バージョン2のまとめ です。
【4】編集後記
---------------------------------------------------------------------
最近の事務の仕事といえば、
パソコンを操作して、いろいろするのが当たり前ですね。
昔は、補助元帳や元帳も、手書きでしたからね〜
今考えれば、信じられないくらいの作業です
今は、銀行に行くことすら、無くなりました。
支払なども、インターネットや、通信でできますから。
しかし、月末の銀行の人の多いこと。
私が、お金をキャッシュコーナーで引き出そうと並んでいると、
振込をしている人が、長い時間かけて、いろいろされています。
早くしてくれ〜
最近、ネット銀行に口座を作ったのですが、
振込は便利ですね!
夜中でもパソコンを操作して、振り込めます!
でも、ネット銀行にたくさんお金を入れておくのは
何か、怖いような気がしてます
いつの間にか、無くなってたりして・・・
(そんなことは無いのでしょうけど)
---------------------------------------------------------------------
最近は、パソコンで映画を観ることもできますが、
動画のパソコン講座も、あるんですよ。
マウスが動いて、画面が変わって、
音声での解説を聞きながら、その動きを見て、
ソフトの勉強ができるようになっています。
初めてのソフトの勉強には、いいかもしれません。
興味のある方は、こちらをご覧下さい。
動画講座のご案内 : http://www.msactry.com/douga/
=====================================================================
【Access実践入門】
ホームページ : http://www.msactry.com/
メルマガ用サンプルプログラム
: http://www.msactry.com/mag2/201/index.htm
参考書「Access実践入門」のダウンロード(PDFファイル)
: http://www.msactry.com/down00/downrepo.htm
=====================================================================
【動画講座のご案内】
http://www.msactry.com/douga/
【その他オフィス関連の教材紹介】
http://www.msactry.com/kyex/
=====================================================================
【発行システム】『まぐまぐ!』 http://www.mag2.com/
配信中止はこちらから http://www.mag2.com/m/0000229312.html
=====================================================================


