他のフォームのイベントを動かす


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vol226

これならわかるマイクロソフトアクセス活用法
            -->他のフォームのイベントを動かす
              
発行者:高内 章治 2015年2月 4日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏ 今日の内容 ━━━━━━━━━━━━━━━━━━━━━━━━┓

┃【01 - ご挨拶    】
┃【02 - トピックス  】他のフォームのイベントを動かす

┃【03 - 編集後記    】

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

─────────────────────────────────
【01 - ご挨拶    】          
─────────────────────────────────

こんにちは、高内(こうない)です。

今回は、

「他のフォームのイベントを動かす」

についてお話したいと思います。




─────────────────────────────────

【02 - トピックス】: 他のフォームのイベントを動かす

─────────────────────────────────

お客様から質問があったので説明します。

通常は、イベントは、そのフォーム内で動かします。

  • クリック時の処理
  • 更新前処理
  • 更新後処理

などのイベントです。

でも、2つのフォームなどを動かす場合は、違うフォームのイベントを動かすこともできます。

例をあげて説明します。

例えば、
在庫管理のプログラムなどで、「入庫画面」でデータを入力するとします。

「製品コード」を入力したときに、

  • 入庫日
  • 入庫数の規定値をゼロ

を自動で入れるとします。
その時は、「製品コード」の「更新後処理」に以下のようなVBAを作成します。

*********************

Public Sub 製品コード_AfterUpdate()
On Error GoTo Err_LABEL

Me!入出庫日 = Date
Me!入庫数 = 0
Me!更新日 = Date

Exit_LABEL:
Exit Sub

Err_LABEL:
MsgBox (Err.Number & "," & Err.Description)
Resume Exit_LABEL
End Sub

********************

次に、「製品コード」のデータ入力についてです。

「製品コード」のテキストボックスにいつも直接、「製品コード」を入力するのは大変ですね。

ですので、「製品一覧」の別のフォームから、「製品コード」選択して「入庫画面」の「製品コード」入力するとします。

「製品一覧」で「製品コード」を選択して、「選択」ボタンをクリックしたときに、その「製品コード」を「入庫画面」に入れます。

以下のVBAを「製品一覧」の「選択」ボタンに書きます。

*********************

Forms!F_入庫画面!製品コード = Me!F_製品リスト_サブA.Form!製品コード
Forms!F_入庫画面.製品コード_AfterUpdate
Forms!F_入庫画面!ロット番号.SetFocus

DoCmd.Close acForm, "F_製品リスト"

*********************

内容を説明します。

Forms!F_入庫画面!製品コード = Me!F_製品リスト_サブA.Form!製品コード

これは、「製品一覧」(F_製品リスト)のサブフォームの「製品コード」を、「入庫画面」(F_入庫画面)の「製品コード」に入れています。

ここまでだと、上のVBAの

  • 入庫日
  • 入庫数の規定値をゼロ

は、自動で入力されません。

Forms!F_入庫画面.製品コード_AfterUpdate

これで、「入庫画面」の「製品コード」の更新後処理を動かしています。

  • 入庫日
  • 入庫数の規定値をゼロ

が自動で入力されます。

Forms!F_入庫画面!ロット番号.SetFocus
DoCmd.Close acForm, "F_製品リスト"

そして、カーソルを次の項目の「ロット番号」に移動して、「製品一覧」のフォームを閉じています。

他のフォームのイベントを動かすときに注意点があります。

他のフォームから動かすイベント、は、必ず、「Public」にする必要があります。

Public Sub 製品コード_AfterUpdate()
######
です。

フォーム内だけで動かすには「Private」です。

イベントを動かすことにより、直接VBAを書く事が少なくなります。
ミスなどが少なくなります。

これは、非常に便利です。

知っておいた方が良いと思います。


参考にしてください。



─────────────────────────────────
【03 - 編集後記    】       
─────────────────────────────────

サッカーのアギーレ監督が解任されました。

スペインでの八百長疑惑で告発が受理されたそうです。

まだ次の監督が決まっていないようです。

毎回、外国の監督を呼んでいますが、日本の監督でも良いような気がします。
日本語でコミュニーケーションの問題もないと思いますが。


◆私がアクセスをマスターできたのは!!
http://www.sk-access.com/kyozai/zaiko1.html  

テーブル作成からVBAまでマスターできます。 
「在庫管理システムをアクセスで作ってみよう」教材です。
http://www.sk-access.com/kyozai/zaiko2.html  


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●ご意見・ご感想・ご質問
 
『メルマガでもっとお役にたてる情報を配信したいと思いますので、日ごろから疑問に思っていることを教えてください。
宛先はこちらへです』

  •  kohnai★vega.ocn.ne.jp
      (高内:こうない:)
    (メールするときは、★を@に変えてください)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


◎「これならわかるマイクロソフトアクセス活用法」 のバックナンバー・配信停止はこちら

archive.mag2.com/0000222659/index.html

◎以下のホームページからでもバックナンバーを見ることができます。

http://www.sk-access.com/mailmaga/index.html

登録・解除につきましてはご自身でお願いいたします。

※このメールマガジンの転送はOKですが、掲載された記事の内容を許可無く転載することをを禁止させて頂きます。
必ず事前にご相談ください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


1週間でアクセス(Access)のシステム開発ができる〜
「在庫管理システムをアクセスで作ってみよう」教材

「アクセスのプログラム/システムを短期間で開発したい方」、
「アクセスのフォーム/VBAを完全にマスターしたい方」のための
アクセス(Access)を使って1週間でシステム開発する究極の方法とは?

「アクセス(Access)のシステムを無料のSQL Server 2016 Expressへ
移行してみよう」教材

あなたの会社のアクセス(Access)のデータベースやシステムに不安を感じていませんか?
アクセスのデータ量が多くなり処理スピードが遅くなった。
アクセスのデータを共有したい。
セキュリティに不安がある。などと、感じている方は!!
(SQL Server 2016 Expressバージョンです。)


「アクセス(Access)プログラムの仕様書の作り方」教材
マイクロソフトアクセスを使用して、プログラムの作成/システム開発をおこないたい方の為に、
アクセス(Access)のプログラム開発に成功するために絶対に必要な「仕様書」とは?



[↑一番上へ]
[マイクロソフトアクセス活用法(メールマガジン)(ホームへ)]
12:350603

アクセス全体

VBA

SQL Server