目次
配送伝票を操作する
こんにちは。伊川(@naonaoke)です。
今回は、ご視聴者様からの質問です。
クロネコヤマトの伝票に、配送時間のチェックを入れたいという質問です。
ご視聴者様からのコメント
伊川さん、貴重なお時間を使って回答動画をアップして頂き、ありがとうございました。まったく自分では回答にたどり着けなかったので目から鱗です。明日、さっそく会社PCでやってみたいと思います!ありがとうございました。
問題提起
(株)IKAWAの阿久 世子男(アク セスオ)は上司から下記の依頼を受けました。
発送伝票の時間指定欄にチェックを入れたい。
どのようにしたらいいのか?
解決策
回答
・Select Caseの条件判定を使って、チェックボックスに仕掛けをします。
クロネコヤマトの伝票作成
発送伝票は。ウィザードを利用します。
ただし、ウィザードを利用する前に、元となるテーブルの作成が必要です。
今回は、MT_住所録を作成しています。
伝票作成 作成手順その1 ウィザードを利用する
ヤマト運輸伝票を選択
連結フィールドを選択
私は、ここは飛ばしました
完了です。
伝票作成 作成手順その2 入力フォームを作成する
ここのチェックボックスに仕掛けをしました。
伝票作成 作成手順その3 Select Caseを使う
これと同じようなコードをチェックボックス毎に記載します。
Option Compare Database Private Sub 午前中_AfterUpdate() Select Case True Case Me.[午前中] = True Me.[時間_14時] = False Me.[時間_16時] = False Me.[時間_18時] = False Me.[時間_19時] = False Me.[時間指定無し] = False Dim a As Variant, b As Variant a = Me.[入力用品名] Me.[配達時間] = "" Me.[配達時間] = "配達時間:午前中" Me.[品名] = a & vbCrLf & vbCrLf & Me.[配達時間] End Select End Sub Private Sub 時間_14時_AfterUpdate() Select Case True Case Me.[時間_14時] = True Me.[午前中] = False Me.[時間_16時] = False Me.[時間_18時] = False Me.[時間_19時] = False Me.[時間指定無し] = False Dim a As Variant a = Me.[入力用品名] Me.[配達時間] = "" Me.[配達時間] = "配達時間:14時~16時" Me.[品名] = a & vbCrLf & vbCrLf & Me.[配達時間] End Select End Sub Private Sub 時間_16時_AfterUpdate() Select Case True Case Me.[時間_16時] = True Me.[午前中] = False Me.[時間_14時] = False Me.[時間_18時] = False Me.[時間_19時] = False Me.[時間指定無し] = False Dim a As Variant a = Me.[入力用品名] Me.[配達時間] = "" Me.[配達時間] = "配達時間:16時~18時" Me.[品名] = a & vbCrLf & vbCrLf & Me.[配達時間] End Select End Sub Private Sub 時間_18時_AfterUpdate() Select Case True Case Me.[時間_18時] = True Me.[午前中] = False Me.[時間_14時] = False Me.[時間_16時] = False Me.[時間_19時] = False Me.[時間指定無し] = False Dim a As Variant a = Me.[入力用品名] Me.[配達時間] = "" Me.[配達時間] = "配達時間:18時~20時" Me.[品名] = a & vbCrLf & vbCrLf & Me.[配達時間] End Select End Sub Private Sub 時間_19時_AfterUpdate() Select Case True Case Me.[時間_19時] = True Me.[午前中] = False Me.[時間_14時] = False Me.[時間_16時] = False Me.[時間_18時] = False Me.[時間指定無し] = False Dim a As Variant a = Me.[入力用品名] Me.[配達時間] = "" Me.[配達時間] = "配達時間:19時~21時" Me.[品名] = a & vbCrLf & vbCrLf & Me.[配達時間] End Select End Sub Private Sub 時間指定無し_AfterUpdate() Select Case True Case Me.[時間指定無し] = True Me.[午前中] = False Me.[時間_14時] = False Me.[時間_16時] = False Me.[時間_18時] = False Me.[時間_19時] = False Dim a As Variant a = Me.[入力用品名] Me.[配達時間] = "" Me.[配達時間] = "配達時間:時間指定無し" Me.[品名] = a & vbCrLf & vbCrLf & Me.[配達時間] End Select End Sub
伝票作成 作成手順その4 レポートにも細工する
完成しました。
ここがポイント
ここがポイント
今回は、完成したのですが、検証できませんでした。私のPCがパソコンにつながっていないからです。
だから、完全な答えではないかもしれません。
ご視聴者様からのコメント
伊川さん、報告が遅くなりました。✔️マークの件、自分がVBAを使いこなせなくて四苦八苦しました(汗)とりあえず見よう見まねで画面と同じような感じで作り上げました(1日がかり…)
で、もう少し質問ができまして…今回のような送り状を作るテーブルって、リレーションシップってできるものでしょうか?テーブルの中身が、入力日、送り先〒、送り先住所(都道府県)、送り先住所(市町村)と番地、送り先会社名、送り先宛名(部署など)、送り先TEL、などを新規であったり毎回送り先が同じ場合もあったり…自分としては何度か送ってる会社名なんかは自動で表示されたいのですが、何を主キーにして、どんな感じで正規化してけばいいかアドバイスして頂けたら幸いです。
で、もう少し質問ができまして…今回のような送り状を作るテーブルって、リレーションシップってできるものでしょうか?テーブルの中身が、入力日、送り先〒、送り先住所(都道府県)、送り先住所(市町村)と番地、送り先会社名、送り先宛名(部署など)、送り先TEL、などを新規であったり毎回送り先が同じ場合もあったり…自分としては何度か送ってる会社名なんかは自動で表示されたいのですが、何を主キーにして、どんな感じで正規化してけばいいかアドバイスして頂けたら幸いです。
再度の質問がきましたので、次回に回答します。
今回のサンプルファイルは、No109です。
毎日の業務が、3時間短縮できます
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。