pickup

 

目次

伊川の過去の動画で、どこまで作成できる?

こんにちは。伊川(@naonaoke)です。

今回は、上の記事の続きになります。

私のこれまでの動画で、どこまでできるのか?

今回は、上記の内容を紹介します。




問題提起

(株)IKAWAの阿久 世子男(アク セスオ)は上司から下記の依頼を受けました。

発送伝票を作成するときに、もっと効率を上げることはできないか?

ACCESSのどのような機能を使えばいいのか?





解決策

回答
sesuo2.jpg
ACCESSといえば、

リレーションとクエリです。スキルをフル回転で作成しましょう。




ACCESSの機能

ACCESSを苦手としている人にACCESSの機能の素晴らしさを伝えたいと思います。

Excelと違い、関数やVBAを使わなくても、ACCESSが有している機能で作成できます。


ACCESSを開くと、このようにフォームを起動するように設定するとこころから始めます。




伝票発行システム作成 作成手順その1 ACCESSを開くとフォームが起動


オプションから、フォームを起動する設定になります。

上の記事を参照してください。




伝票発行システム作成 作成手順その2 顧客リストを一瞬で入力

顧客リストは、オートルックアップクエリで入力します。

MT_顧客リスト

荷物を届ける発送先のリストです。


MT_発送元

発送元の会社です。


MT_発送印字リスト

この内容を、送り状に印字します。


F_発送入力

下記のフォームに、情報を入力します。



動画では、6:56の場所で確認できます。

ブログでは、この感動を伝えることはできないので、動画で確認をお願いします。

リレーションの設定

一対多のリレーションを設定します。






伝票発行システム作成 作成手順その3 配達の時間指定を入力


Private Sub 顧客ID_AfterUpdate()
Me.日時 = Date
End Sub

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 更新クエリ


発送印字リストは顧客IDしか入力されていません。

発送印字リストは更新クエリを利用して、空白を埋めます。


全部の画面を記載できないので、一部抜粋で掲載します。


ボタン一発で更新されます。


実行結果です。

Private Sub コマンド2_Click()
DoCmd.OpenQuery "更新Q_発送リスト", acViewNormal, acEdit
MsgBox "印字リスト更新完了"


DoCmd.OpenReport "R_送り状印", acViewPreview
End Sub


MT_発送印字リストも埋まりました。




ここがポイント

ここがポイント
Function8.png
カンタンな、VBAのコードでシステムは作成できるのが、ACCESSのスゴイところです。オートルックアップクエリと、クエリを理解することがACCESSを理解する第一歩です。

 




まとめ

ここまでが前半になります。

後半は、もっと業務を効率化するように細工をします。

今回のサンプルファイルは、ありません。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事