目次
伝票発行システムを管理 後編
こんにちは。伊川(@naonaoke)です。
今回は、上の記事の続きになります。
オートルックアップ、Excelで言うとこのLOOKUPに近いですかね?リレーションシップの重要性も承知してるのですが、自分とこの業務では送り状の送り先が固定先ではない、常に新規の送り先じゃないのが悩みの種です。
メインフォームに仕掛けをする
前回でほぼ完成していますが、さらに業務を効率化するために、仕掛けをします。
小技を持っていると業務が楽になります。
メインフォームに仕掛けをする 作成手順その1 自動的に今日の日時を入力
日時がないデータベースは意味がありません。
自動的に入力する場合は、必ず入力しなければならないフィールドに仕掛けをします。
Private Sub 顧客ID_AfterUpdate() Me.日時 = Date End Sub
メインフォームに仕掛けをする 作成手順その2 一度印字したデータは表示させない
これは更新クエリを使います。
更新クエリは、本当に便利ですので、使いこなせるようになりましょう。
仕掛けは、印字完了にチェックが入っていないデータだけが、未発送のデータになります。
本日のデータ、かつ、チェックが入っていないものにつき、チェックボックスをTrue、つまり、チェックを入れます。
チェックの入ったデータは、発送済なので、抽出されることはありません。しかも、一気にチェックが入ります。
Excelのような手作業ではミスが発生する可能性がありますが、更新クエリは間違えません。
メインフォームに仕掛けをする 作成手順その3 発送確認を行う
お客様から、荷物が届いていないと問合せがあった場合は、普通、日時と会社名を確認するはずです。
この検索フォームは、日時と、会社名で、複数条件で検索ができるようになっています。
複数条件で検索するコード
Private Sub コマンド115_Click() Dim rs As DAO.Recordset Dim strFil As String Set db = CurrentDb Set rs = db.OpenRecordset("MT_発送印字リスト", dbOpenDynaset) strFil = "日時=#" & 日付 & "#" & _ " and 届け先氏名 Like '*" & 届け先 & "*'" rs.Filter = strFil Set rs = rs.OpenRecordset Set Me.Recordset = rs Me.Requery Set rs = Nothing Set db = Nothing End Sub
検索条件を解除するコード
Private Sub コマンド112_Click() Me.[日付] = Null Me.[届け先] = "" Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("MT_発送印字リスト", dbOpenDynaset) Set Me.Recordset = rs Me.Requery Set rs = Nothing Set db = Nothing End Sub
ここがポイント
今回は、伊川の過去動画でどれだけのシステムを作れるかを検証しました。言葉はわるいですが、どんな格好悪いシステムでも一度完成させましょう。
それを繰り返すことで、コツがわかります。
私は、一番初めに作成したシステムから、コレクションしています。
初めに作成したシステムはお世辞でも、
カッコ良いといえません。
そんな私でも動画あげていますから情熱をもって、お互い頑張りましょう。
。
まとめ
ACCESSは便利ということがわかっていただけましたでしょうか?
もっとACCESSの利便性を解説していきたいと思います。
今回のサンプルファイルは、No111です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。