AccessVBA 練習問題 入門1


この問題を始めるには「VBA練習入門.mdb」が必要です。(DLページにあります)


マクロをVBAに変換する

  1. 「F受注伝票」フォーム[顧客ID]テキストボックスの[ダブルクリック時]のイベントに設定してある「顧客フォームを開く」マクロを、VBAに変換しましょう。変換後、ダブルクリック時のイベントが「イベントプロシージャ」に変わったことを確認しましょう。
  2. このプロシージャの内容を確認して、VBEを閉じましょう。

プロシージャを作成する

  1. [Fメインパネル]フォームの、[cmd顧客管理]ボタンをクリックしたときに、[F得意先入力]フォームを開いて最終レコード移動するイベントプロシージャを作成しましょう。
  2. このプロシージャに、[得意先入力フォームを開き最終レコードに移動します]と、コメントを設定しましょう。
  3. Accessに切り替えてボタンをクリックし、動作を確認しましょう。
  4. 確認後はフォームを閉じ、[顧客フォームを開く]マクロは削除しましょう。

エラーを見つける

  1. [Fメインパネル]フォームの[cmd商品管理]ボタンのクリック時イベントプロシージャに[Docmd.OpenForm]とステートメントを記述し、フォームからボタンをクリックして実行してみましょう。
  2. コンパイルエラーが確認できたら、エラーを修正(引数に”F商品入力”を指定)して再びプロシージャを実行(F5キー)しましょう。正しく実行できたらこのフォームを閉じましょう。
  3. [Fメインパネル]フォームをビューモードで開き、[受注管理]ボタンをクリックし、実行時エラーが発生することを確認しましょう。実行時エラーはプロシージャの実行中に発生します。
  4. 正しい記述(“F受注伝票”)に修正し、再度実行しましょう。
  5. F受注伝票が開けることを確認したら、開いているフォームを閉じましょう。

変数を使う

  1. [Fメインパネル]フォームの[cmdフォームを閉じる_Click]プロシージャに、整数型の変数“msg”を宣言するDimステートメントを設定しましょう。
  2. メッセージボックスを表示するステートメントを追加しましょう。引数には vbOKOnlyとvbInformationを使います。表示するメッセージは[メインパネルを閉じます]とします。ステートメントは2行に分けて記述しましょう。
  3. フォームを閉じるステートメントを追加しましょう。
  4. フォームからこのプロシージャの結果を確認しましょう。


 If〜Thenステートメント

  1. [F得意先入力]をデザインビューで開きましょう。ここでは、条件により処理を分岐するステートメントを練習します。
  2. コントロールウィザードがオフになっていることを確認してから、フォームフッターにコマンドボタンを貼り付けます。プロパティを表示し、表題に[閉じる]と入力し、名前に[cmd閉じる]と設定しましょう。
  3. このボタンがクリックされたらフォームを閉じるプロシージャを作成しましょう。
  4. 閉じる前に、[はい]と[いいえ]ボタンのメッセージボックスが表示されるようステートメントを追加しましょう。MsgBoxの引数のうちメッセージの内容は[得意先フォームを閉じる]とします。
  5. [はい]ボタンがクリックされたときにだけフォームを閉じるよう、Ifステートメントを追加しましょう。
  6. フォームから[閉じる]ボタンをクリックして確認しましょう。
  7. メッセージボックスのボタンをクリックして、[いいえ]と[はい]の両方を確認しましょう。


定数を利用する

  1. [F商品入力]フォームにコマンドボタンを作成し[cmd消費税]と名前をつけましょう。標題は[消費税]とします。ボタンの位置は[単価]の右側あたりです。
  2. このボタンをクリックした時に、メッセージボックスに消費税が表示されるプロシージャを作成しましょう。消費税率には定数を使うことが条件です。
  3. 実行結果を確認し、フォームを閉じましょう。

ユーザー定義関数

  1. 新規モジュールを作成し、引数に納品日と受注日を入れると、受注日から納品日までの日付を返す関数[KeepTime]を作成しましょう。変数名などは自分で考えてください。日にちの計算には、DateDiff関数を使います。
  2. モジュールに、[myFunction]と名前を付けて保存しましょう。
  3. イミディエイトウィンドウを使用して、KeepTimeプロシージャをテストしましょう。
  4. [F受注伝票]にコマンドボタンを作成し(納品日ボックスの右側あたり)、そのボタンがクリックされたときに、メッセージボックスに、日付計算の結果を表示するプロシージャを作成しましょう。ボタンの名前は[cmd納期、標題は[納期計算]とします。日付の計算には、先ほど作成した関数[KeepTime]を使うものとします。
  5. 実行結果を確認し、フォームを閉じましょう。