スポンサードリンク



Access VBAメソッドの基本的な使い方について。

AccessのVBAには、様々なメソッドが用意されていて、簡単に使えます。

ここでVBAメソッドの使い方の基本を学んでおきましょう。

ステップ「29・課題 伝票レポートを選択して表示」で、

AccessのVBAを使って、目的のレコードのレポートだけを表示する方法を紹介しました。

以下のようなメソッドでした。

DoCmd.OpenReport "R02Slip", acViewPreview, , "SLIP_CD = " & Me.SLIP_CD


まずメソッドの使い方の基本から説明します。
他のメソッドでも、基本的に同じだと考えてOKです。

MicrosoftのVBAのヘルプで説明を見ると、

OpenReport(ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs)

と書かれています。

メソッドには、引数があり、その順番も重要です。

メソッド名の後ろのカッコの中が引数です。

引数が複数ある場合は、「,」(カンマ)で区切ります。

また引数には、省略できるものと、出来ないものがあります。

引数を省略した場合は、既定値が入る仕組みです。

例えば、
DoCmd.OpenReport "R02Slip", acViewPreview

というのは、2番目までの引数を使っているわけです。

1番目はReportName(レポート名)です。

2番目のViewは、どのようにレポートを開くかです。

acViewPreviewは、あらかじめ用意されている組み込み定数で、
印刷プレビューという意味です。

これを acViewNormal に変えれば、即時印刷されます。

3番目以降の引数は省略できます。

でもこのままだと、全ページ印刷されるので、

4番目のWhereConditionという引数で、レコードを絞り込みます。
"SLIP_CD = " & Me.SLIP_CD

左辺のSLIP_CD は、レポートの基になっているクエリまたはテーブルのフィールド名です。

右辺のMe.SLIP_CDは、フォームのコントロール名です。

"SLIP_CD = "は文字列なので、「"」(ダブルクォーテーション)で囲います。

Me.SLIP_CDは、フォーム上のコントロール名なので、そのままです。

本来なら、
"SLIP_CD = 9"
のように全て文字列で引数を指定したいところですが、

Me.SLIP_CDは、レコードごとに変わります。

そこで、フォームから値を取得するため、「"」の外に出しているわけです。

"SLIP_CD = & Me.SLIP_CD"
では無いので、ご注意を。

3番目のFilterNameは省略できます。
引数を省略した場合は、既定値が入るようになっています。

しかし区切りのカンマまでは省略できませんので、必ず残します。 *超重要

5番目、6番目の引数は、省略できるので、書きません。
後ろで省略する場合は、カンマも省略できます。

まとめると、
DoCmd.OpenReport "R01発注書" ,acViewPreview , , "SLIP_CD = " & Me.SLIP_CD

と書くわけです。

ただし、カンマだけ書いてもOKです。

DoCmd.OpenReport "R02Slip" ,acViewPreview , , "SLIP_CD = " & Me.SLIP_CD , ,

となります。

ps:
直接プリントしなくてもよいのなら、acViewPreviewでかまいません。

普通は印刷プレビューで間違いないか、確認してから印刷しますから。

印刷の間違いによる紙のムダを省くためです。

スポンサードリンク






Microsoft Access初心者入門講座 TOPへ