21
1 この手引きは、『Microsoft ® Access セミナーテキスト VBA活用編[2000/2002対応]』 を使ってセミナーを実施される講師の方に、ご参考にしていただきたい各情報(セミナー実施 時の注意事項、所要時間、本文内容の補足)をまとめたものです。 より良いセミナーを行うために、この手引きがお役に立てば幸いです。 日経 BPソフトプレス セミナー実施時の注意 以下の点に注意して、セミナーを実施しましょう。 ●キストに記載されている名称で説明すること(講師がテキストに記載されている名称と異な る名称で説明すると受講者は混乱するため)。 ●受講者からの質問に対して自信のないことは即答を避け、調査後の折り返し回答を徹底する こと。 ●英数字の入力は、特に指示がない限り、半角で入力するよう説明すること。 セミナー実施前に、次の環境を確認しておきましょう。 ● Office アシスタント ………………………………………………………………………………オフ ●メニューがすべて表示されるように、[ツール]メニューの[ユーザー設定]の[オプション] で、次の設定を行います。 ・ Access 2000 の場合:[最近使用したコマンドを最初に表示する] ……………………オフ ・ Access 2002 の場合:[常にすべてのメニューを表示する] ……………………………オン ●プリンタがセットアップされている状態。 ※ご使用のコンピュータやプリンタ、セットアップなどの状態によって、画面の表示がテキス トと異なる場合があります。 ※ Access 2000 でセミナーを実施する場合の注意 本テキストでは、Office 2000 Premium を標準セットアップし、Office 2000 Service Pack 3(以降、SP-3)をインストールした状態の環境を前提としています。 Office 2000 SP-3 をインストールするには、次の手順が必要です。 ① Office 2000 Service Release 1 をインストールする。 ② Office 2000 SP-3 をインストールする。 Office 2000 SP-3 をダウンロードした後、インストールする前に、いくつかの Access 関連 のファイル名を変更する必要があります。詳細については、マイクロソフト社の Office 2000 SP-3 のダウンロードページを参照してください。 Microsoft ® Access セミナー テキスト VBA 活用編 [2000/2002]対応 講習の手引き

Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

1

この手引きは、『Microsoft® Access セミナーテキスト VBA活用編[2000/2002対応]』

を使ってセミナーを実施される講師の方に、ご参考にしていただきたい各情報(セミナー実施

時の注意事項、所要時間、本文内容の補足)をまとめたものです。

より良いセミナーを行うために、この手引きがお役に立てば幸いです。

日経BPソフトプレス

セミナー実施時の注意以下の点に注意して、セミナーを実施しましょう。

●キストに記載されている名称で説明すること(講師がテキストに記載されている名称と異な

る名称で説明すると受講者は混乱するため)。

●受講者からの質問に対して自信のないことは即答を避け、調査後の折り返し回答を徹底する

こと。

●英数字の入力は、特に指示がない限り、半角で入力するよう説明すること。

セミナー実施前に、次の環境を確認しておきましょう。

●Officeアシスタント ………………………………………………………………………………オフ

●メニューがすべて表示されるように、[ツール]メニューの[ユーザー設定]の[オプション]

で、次の設定を行います。

・Access 2000の場合:[最近使用したコマンドを最初に表示する]……………………オフ

・Access 2002の場合:[常にすべてのメニューを表示する]……………………………オン

●プリンタがセットアップされている状態。

※ご使用のコンピュータやプリンタ、セットアップなどの状態によって、画面の表示がテキス

トと異なる場合があります。

※Access 2000でセミナーを実施する場合の注意

本テキストでは、Office 2000 Premiumを標準セットアップし、Office 2000 Service

Pack 3(以降、SP-3)をインストールした状態の環境を前提としています。

Office 2000 SP-3をインストールするには、次の手順が必要です。

①Office 2000 Service Release 1をインストールする。

②Office 2000 SP-3をインストールする。

Office 2000 SP-3をダウンロードした後、インストールする前に、いくつかのAccess関連

のファイル名を変更する必要があります。詳細については、マイクロソフト社のOffice 2000

SP-3のダウンロードページを参照してください。

Microsoft® Accessセミナー テキスト VBA活用編

[2000/2002]対応

講習の手引き

Page 2: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

2

セミナーの所要時間このセミナーテキストの標準セミナー時間は約9時間です。

セミナー時間により、各章の目安の必要時間を基に、自由に実習項目を選択しましょう。各章、

各節の時間は、「はじめに」に記載されている対象者で行った場合の目安です。

第1章 VBAの基礎知識 20分

1.1 VBAとは 10分

1.2 プロシージャを作成するには 5分

1.3 変数を利用するには 5分

第2章 フィルタの操作 120分

2.1 コンボボックスを利用して抽出するには 70分

2.2 すべてのレコードを表示するには 20分

2.3 コントロールの表示/非表示を切り替えるには 30分

第3章 高度なレポートの作成 110分

3.1 指定したレコードを印刷するには 30分

3.2 エラー処理を行うには 40分

3.3 1ページに印刷する行数を指定するには 40分

第4章 クエリの活用 90分

4.1 クエリとSQLビューの関連 20分

4.2 アクションクエリを実行するには 45分

4.3 アクションクエリのメッセージを制御するには 25分

第5章 エクスポート 90分

5.1 Excelへエクスポートするには 45分

5.2 エクスポートのエラーを防ぐには 45分

第6章 レコードの操作 110分

6.1 レコード操作のしくみ 15分

6.2 ADOを利用するには 50分

6.3 DAOを利用するには 45分

Page 3: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

3

本文の注意点と参考情報本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

してください。

第1章 VBAの基礎知識

1.1 VBAとは

p.2 ヒント:イベント

オブジェクトやコントロールの種類によって、使用できるイベントの種類や数は異なります。

p.2 ■モジュールとは

"宣言セクション" には、モジュール全体に適用する定義を記述します。既定ではモジュール

を作成すると自動的に、Option Compare ステートメントが作成されます。Option

Compareステートメントは、文字列データの既定の比較方法で、Databaseモード、

Binaryモード、Textモードの4つのモードがあり、既定ではDatabaseモードが指定され

ます。

p.2 ・クラスモジュール

特定のフォームやレポートに関連付けられていないクラスモジュールもありますが、本テキ

ストでは、フォームモジュールとレポートモジュールのみを扱います。

1.2 プロシージャを作成するには

p.4 ■Visual Basic Editorの画面構成

プロパティは、英語で表記されます。また、フォームやレポートのデザインビューを表示し

ていない場合は、プロパティウィンドウには何も表示されません。

p.4 ■イベントプロシージャの作成方法

テキストで紹介した方法以外に、次の手順でVisual Basic Editorを起動できます。

①目的のイベントボックスをクリックし、右端の[ビルド]ボタンをクリックする。

②[ビルダの選択]ダイアログボックスの[コードビルダ]を選択する。

③[OK]ボタンをクリックする。

p.5 ■プロシージャの記述方法

①プロシージャの開始と終了

Functionプロシージャの場合は、「Function プロシージャ名」から「End Function」まで

の間の行に、実行する処理を記述します。

1.3 変数を利用するには

p.6 ■変数の宣言

変数を宣言せずに使用することも可能ですが、宣言をしない場合、変数名を1文字でも間違

えてしまうと新しい変数とみなされてしまいます。

たとえば、変数msgに今日から5日後の日付を代入し、その値をメッセージボックスで表示

するステートメントを次のように記述した場合の例で説明します。

上記は、MsgBoxのステートメントに入力した変数名を間違えて「msg」ではなく「mag」

と入力してしまい、気づかなかった例です。この場合、メッセージボックスには何も表示さ

れません。これは変数の宣言をしていないため、「mag」は「msg」とは別の変数として認

識されているからです。

Private Sub After5days_Click( )

msg = Date + 5

MsgBox mag

End Sub

Page 4: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

4

変数の宣言をするとこのようなミスを防げます。また、変数の宣言を強制することもできます。

変数の宣言を強制すると、宣言をしていない変数を使用するとエラーが発生します。変数の宣

言を強制するには、次の2つの方法があります。

a. 宣言セクションに Option Explicitステートメントを直接記述する。

b. Visual Basic Editorの[ツール]メニューの[オプション]をクリックし、[オプション]

ダイアログボックスの[編集]タブの[変数の宣言を強制する]チェックボックスをオン

にする。

第2章 フィルタの操作

2.1 コンボボックスを利用して抽出するには

2.1.1 コレクションについて(p.10)

データベースを開くと、アプリケーションオブジェクトが確立されます。アプリケーションオ

ブジェクトには、Formsコレクション、Reportsコレクション、Modulesコレクション、

DataAccessPagesコレクションなどがあり、各コレクションに、開いたデータベースのオ

ブジェクトが含まれることを、テキストの階層図を用いて説明しましょう。

階層構造の図のFormsコレクションには、本テキストで使用するデータベース "売上管理" に

存在するオブジェクト名の一例が記載されています。Formsコレクションだけではなく、

Reportsコレクションにも、[R売上一覧]レポートや[R売上伝票]レポートがあることを

補足しましょう。

p.10 プロパティの指定、コントロールの参照

VBAでは、さまざまなオブジェクト、コントロール、プロパティを使用して操作しますが、

参照するには、書式を覚えておく必要があります。

この章ではフォームの操作を学習するため、使用例ではフォームのプロパティやコントロール

の参照方法を紹介していますが、レポートも同じように設定できます。レポートの場合は、コ

レクション名を「Reports」と記述します。

・プロパティの書式

Reports!レポート名.プロパティ名

・コントロールの書式

Reports!レポート名!コントロール名

また、参照するオブジェクトが同じレポート上にあれば、Meプロパティを使用した記述もで

きます。

2.1.2 抽出を実行する

p.11 ■プロパティの設定方法

ここで使用する等号(=)は、等しいという意味ではありません。右辺の設定値を左辺に代入

するという意味であることを補足しましょう。

p.11 ■Filter(フィルタ)プロパティ

2つ目の使用例は、コントロールを参照する場合の例を示しています。コントロールが、同一

フォーム上にある場合は、Meプロパティを使用して、次のように記述できます。

Me.Filter = "顧客名 =' " & Me!顧客検索 & "'"

Reports コレクション

[R 売上一覧]レポート

[R 売上伝票]レポート

Page 5: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

5

設定値の比較演算子には、Like演算子やBetween~And演算子を使用することもできます。

・Like演算子の使用例

Forms!F顧客一覧.Filter = "ふりがな Like 'カ*'"

[F顧客一覧]フォームの "ふりがな" フィールドの値が "カ" で始まるレコードを抽出しま

す。

・Between~And演算子の使用例

Forms!F売上一覧.Filter = "売上日 Between #2004/01/01# And #2004/01/31#"

[F売上一覧]フォームの "売上日" フィールドの値が 2004年1月のレコードを抽出しま

す。

p.13 操作:コンボボックスとコマンドボタンを作成する Step2

データベース "売上管理" を開くときは、[ファイルを開く]ダイアログボックスから開くよ

うにします。[ファイル]メニューの下部に表示される最近使ったファイルの一覧から開いた

り、Accessを起動せずに[AccessVBA活用]フォルダウィンドウのファイルをダブルク

リックして開くと、「第5章 エクスポート」の実習を行ったときに、テキストとは異なるフ

ォルダへファイルがエクスポートされてしまいます。

Access 2000の場合は、起動時に表示される[Microsoft Access]ダイアログボックス

に表示される最近使ったファイルの一覧からもファイルを開かないように注意しましょう。

p.13 操作:コンボボックスとコマンドボタンを作成する Step5

コンボボックスの作成は、コントロールウィザードを使用しても作成できます。コンボボッ

クスウィザードで行う設定は次のとおりです。

①コンボボックスに表示する値の種類の選択

[テーブルまたはクエリの値をコンボボックスに表示する]をオンにする。

②コンボボックスの値の取得元となるテーブルまたはクエリの選択

[表示]から[クエリ]を選択し、[Q都道府県]をクリックする。

③コンボボックスの値の取得元となるフィールドの選択

[都道府県]を選択する。

④列幅の指定

必要に応じて自動調整する。

⑤コンボボックスの値を選択したときの利用方法

[後の作業で使用する]を選択する。

⑥コンボボックスに付けるラベル名の指定

「都道府県抽出」と入力する。

ウィザードが完了すると、[値集合タイプ]プロパティに[テーブル/クエリ]が設定されま

す。また、[値集合ソース]プロパティにSQLステートメントが記述され、"SELECT [Q都

道府県].[都道府県] FROM [Q都道府県]" と表示されます。

ウィザードを使った場合、[名前]プロパティに「都道府県抽出」と入力すると、本テキスト

と同じようにプロシージャを作成することができます。

p.13 操作:コンボボックスとコマンドボタンを作成する Step6

Access 2002では、F4キーを押してプロパティシートを表示することもできます。ただ

し、Access 2000では、このショートカットキーは使用できません。

p.14 操作:コンボボックスとコマンドボタンを作成する Step7

右辺中央のハンドルをダブルクリックすると、コントロールのサイズを自動調整できること

を補足しましょう。

p.14 操作:コンボボックスとコマンドボタンを作成する Step9

時間に余裕があれば、[Q都道府県]クエリを実行して、実行結果に表示されるデータを確認

してからプロパティの設定を行うとよいでしょう。

Page 6: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

6

p.17 操作:イベントプロシージャを作成する Step6

テキスト型のフィールドに条件を設定する場合は、コントロール名を必ずシングルクォーテ

ーション(')で囲みます。ダブルクォーテーション(")で囲むとエラーが発生しますので、

入力するときは間違えないように注意しましょう。

2.1.3 条件に応じて処理を分岐する(p.19)

時間に余裕があれば、分岐処理について説明する前に、[都道府県抽出]ボックスの "神奈川

県" を削除して、値が選択されていない状態で[抽出]ボタンをクリックし、結果を確認して

みましょう。[都道府県抽出]ボックスに何も入力しないで[抽出]ボタンをクリックすると

[F顧客一覧]フォームはレコードがない表示になります。

p.20 ■Exit Sub(エグジットサブ)ステートメント

Subプロシージャを途中で終了する場合は「Exit Sub」と記述するのに対し、Functionプ

ロシージャを途中で終了する場合は「Exit Function」と記述します。

p.21 操作:条件分岐を設定する Step1

タスクバーのボタンをクリックしても、Visual Basic Editorに切り替えることができます。

また、データベースウィンドウ、フォームのデザインビューやレポートのデザインビューを

表示している場合は、ツールバーの [コード]ボタンをクリックして切り替えることが

できます。

p.21 操作:条件分岐を設定する Step3

SetFocusメソッドを使用しない場合は、メッセージボックスの[OK]ボタンをクリックす

ると、1件目の "顧客ID" フィールドにカーソルが移動します。

p.21 ヒント:MsgBox(メッセージボックス)関数

本テキストでは、関数の書式や引数の意味がわかりやすいように引数を日本語で表記してい

ますが、クイックヒントやヘルプでは英語で表示されます。また、本テキストでは、よく使

用される引数のみを紹介しています。

p.23 ヒント:ドロップダウンリストを自動的に表示するには

時間に余裕があれば、実際にステートメントを記述してみましょう。ドロップダウンリスト

を自動的に表示する場合は、次の太字部分のようにステートメントを追加します。

Private Sub 抽出_Click()

If IsNull(Me!都道府県抽出) Then

MsgBox "都道府県を選択してください"

Me!都道府県抽出.SetFocus

Me!都道府県抽出.DropdownExit Sub

Else

End Sub

Page 7: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

7

2.2 すべてのレコードを表示するには

p.24 ヒント:フィルタの解除

フィルタを解除する場合、FilterOnプロパティの値をFalseに設定するステートメントを記

述する方法もよく使用されます。本テキストでは、より多くのメソッドやプロパティをご紹

介する目的で、ShowAllRecordsメソッドを使用しています。また、コマンドボタン名も、

使用するメソッド名(ShowAllRecords)にあわせ、「解除」ではなく「すべて表示」とし

ています。

FilterOnプロパティを使用して抽出を解除する場合は、次の太字部分のように記述します。

p.26 操作:抽出が解除されることを確認する Step2

Accessでは、抽出を実行するとステータスバーに "FLTR" と表示され、解除すると "FLTR"

が非表示になることを補足しましょう。

2.3 コントロールの表示/非表示を切り替えるには

p.28 操作:コントロールの表示/非表示を設定する Step4

このプロシージャは、[F顧客一覧]フォームを開いたときに、[すべて表示]ボタンを非表

示にします。

p.28 操作:コントロールの表示/非表示を設定する Step5

このプロシージャは、[すべて表示]ボタンをクリックしたときに次の処理を行います。

・抽出を解除する。

・[都道府県抽出]ボックスにNull値を代入する。

・[すべて表示]ボタンを非表示にする。

p.28 操作:コントロールの表示/非表示を設定する Step6

このプロシージャは、[抽出]ボタンをクリックしたときに次の処理を行います。

・[都道府県抽出]ボックスがNull値ならば、メッセージを表示して[都道府県抽出]ボッ

クスにカーソルを移動する。

・[都道府県抽出]ボックスで値が選択されていれば、その値を条件値として抽出を実行す

る。

・抽出実行後、[すべて表示]ボタンを表示する。

第3章 高度なレポートの作成

3.1 指定したレコードを印刷するには

3.1.1 レポートを印刷する(p.34)

本テキストでは、プリンタが物理的に接続されていない環境でもセミナーを実施できるよう

に、実際に印刷を開始する方法ではなく、印刷プレビューを実行する方法を紹介します。実

際にプリンタから印刷する場合は、OpenReport メソッドの引数「ビューの種類」の

「acViewPreview」を「acViewNormal」に変更すればよいことを補足しましょう。

p.34 ■OpenReport(オープンレポート)メソッド

OpenReportメソッドの引数は、クイックヒントで次のように表示されます。

この他にも引数はありますが、本テキストではよく使用される4つの引数のみを扱います。

OpenReport(ReportName, View, FilterName, WhereCondition)

Private Sub すべて表示_Click()

Me.FilterOn = False都道府県検索 = Null

End Sub

Page 8: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

8

p.35 操作:レポートを印刷プレビューする Step1

[F売上入力]フォームは、[T売上]テーブルをメインフォーム、[T売上明細]テーブルを

サブフォームとしたメイン/サブフォームです。

時間に余裕があれば、コマンドボタンを作成する前に、[R売上伝票]レポートを印刷プレビ

ューして確認するとよいでしょう。

p.37 操作:印刷プレビューを確認する Step4

ヒント:2ページ目の確認

[R売上伝票]レポートは、"売上ID" フィールドでグループ化し、あらかじめ[グループフッ

ター]セクションの[改ページ]プロパティを[カレントセクションの後]に設定していま

す。そのため、"売上ID" ごとに改ページされています。

3.1.2 特定のレコードのみを印刷する

p.38 ヒント:引数の省略について

メソッドを入力すると、構文がクイックヒントとして英語で表示されます。入力対象となる

引数は、太字で表示されるので、引数を確認しながらカンマ(,)を入力しましょう。また、

角かっこ([ ])で囲まれた引数は、省略することができます。

p.38 ■OpenReportメソッドの条件式

コントロールを使用する場合の使用例では、数値型の "売上ID" フィールドを条件値に指定し

ています。コントロールを条件値として使用する場合も、数値型のフィールドは、記号で囲

まずにそのまま記述します。シングルクォーテーション(')で囲むとエラーが発生しますの

で、注意しましょう。

p.40 操作:印刷プレビューを確認する Step2

このStepでは、レポート上をクリックして拡大表示をしていますが、RunCommandメソ

ッドを使用したステートメントを追加して、自動的に拡大表示することも可能です。

■RunCommand(ランコマンド)メソッド

組み込みメニューやツールバーのボタンを実行します。

本テキストのプロシージャにステートメントを追加するには、次の太字部分のように記述し

ます。

Private Sub 売上印刷_Click( )

DoCmd OpenReport "R売上伝票",acViewPreview, , _

"売上ID = " & Forms!F売上入力!売上ID

DoCmd.Maximize

DoCmd.RunCommand acCmdZoom100End Sub

書式 DoCmd.RunCommand コマンド

引数 コマンド:メニューやツールバーのコマンドを組み込み定数で指定します。

使用例 DoCmd.RunCommand acCmdZoom100

[ズーム]ボックスの値を100%に設定します。

Page 9: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

9

3.2 エラー処理を行うには

3.2.1 実行時エラーについて

p.43 操作:実行時エラーを確認する Step2

ここでは、フォーム上のコントロールには何も入力しないように注意しましょう。保存して

いないレコードでも、[売上ID]ボックスに値(オートナンバーの数値)が表示されると、そ

の他のコントロールのデータがなくても印刷プレビューが表示され、エラーが確認できなく

なります。

p.44 「操作:実行時エラーを確認する Step3」の注意

[デバッグ]ボタンをクリックしてすぐに修正することもできますが、セミナーでは修正の前

にエラー処理について理解してもらう必要があるため、ここでは[終了]ボタンをクリック

することを補足しましょう。

[デバッグ]ボタンをクリックした場合は、処理が中断され、Visual Basic Editorが起動し

て、エラー箇所が黄色に反転します。その後、ツールバーの[リセット]ボタンをクリック

し、中断状態を解除してエラー箇所を修正する必要があります。または、エラー箇所を修正

してから[リセット]ボタンをクリックします。

3.2.2 エラー処理を追加する

p.45 ■エラー処理を設定したプロシージャの構造

テキストの図を使用して、エラーが発生しない場合とエラーが発生した場合の違いを説明し

ましょう。

・エラーが発生しない場合

「プロシージャの開始」の後、②、③の処理を行ってからプロシージャを終了します。

・エラーが発生した場合

「プロシージャの開始」の後、①、④の処理を行ってからプロシージャを終了します。

また、時間に余裕があれば、簡単なマクロを作成してエラー処理コードを含めてVBAに変

換し、内容を確認するデモを講師が行うとよいでしょう。

p.45 ■On Error(オンエラー)ステートメント

On Errorステートメントは、エラーが発生したときに処理を中断しないで実行するための宣

言を行い、GoToステートメントで指定した場所に移動して処理を実行します。

「On Error GoTo 0」と記述すると、エラーが発生してもエラー処理ルーチンには移動せず、

エラー処理を無効にします。エラーを回避せずに、意図的にエラーメッセージを表示させて、

トラブルの原因を確認するときなどに使用します。

エラー処理で使うステートメントには、Resumeステートメントもあります。

■Resume(レジューム)ステートメント

エラー処理の後、指定した行ラベルに移動し、エラーが発生した次の行からステートメント

を実行して、プロシージャを再開します。

Page 10: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

10

また、On ErrorステートメントとResumeステートメントを組み合わせて次のように記述

すると、エラーを無視して、それ以降のステートメントを実行します。

p.46 操作:エラー処理を追加する Step2

ステートメントを入力した後で、p.47のヒント「作成したイベントプロシージャの処理内容」

を使用して、プロシージャの処理について説明しましょう。

3.3 1ページに印刷する行数を指定するには

3.3.1改ページコントロール

p.50 操作:改ページコントロールを作成する Step4

改ページコントロールを作成するときの位置は、[売上ID]ボックスの下をクリックすること

を強調しましょう。[売上ID]ボックスの下ではなく、[詳細]セクションの左端下をクリッ

クして改ページコントロールを作成すると、2ページ目以降では指定した行数で表示できな

い場合があります。

また、[詳細]セクションに改ページコントロールを作成しただけ(= プロパティの設定前)

では、1レコードずつ改ページが行われることを補足しましょう。講師のみが印刷プレビュ

ーを実行し、改ページされることを確認してもらうデモを行ってもよいでしょう。

p.51 操作:改ページコントロールを作成する Step7

[詳細]セクションで、改ページを有効にする行数を指定します。そのため、改ページコント

ロールを無効にするプロシージャは、[詳細]セクションより前の[ページヘッダー]セクシ

ョンの "フォーマット時" イベントに割り当てます。

p.51 操作:改ページコントロールを作成する Step8

このプロシージャを作成して、印刷プレビューを実行すると改ページコントロールが無効に

なり、最初に確認した15件のレコードが表示されることを補足しましょう。講師のみが印

刷プレビューを実行し、改ページ位置を確認してもらうデモを行ってもよいでしょう。

On Error Resume Next

書式 Resume 行ラベル

引数 行ラベル:エラー発生時に指定した行ラベルからステートメントを再開しま

す。

使用例 Private Sub 売上伝票印刷_Click()

Exit_売上伝票印刷_Click:

Exit Sub

Err_売上伝票印刷_Click:

If Err.Number =3075 Then

MsgBox "売上IDが未登録のレコードは印刷できません"

Resume exit_売上伝票印刷_Click:

Else

End Sub

エラー番号 "3075" が発生した場合、「売上IDが未登録のレコードは印刷で

きません」というメッセージを表示した後、「Exit_売上伝票印刷_Click:」の

行ラベルに移動し、Exit Subの処理を再開します(処理を終了)。

Page 11: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

11

3.3.2 レコード数をカウントする

p.53 操作:レコード数をカウントするテキストボックスを作成する Step1

テキストボックスを作成するときは、できるだけ[詳細]セクションの上側をクリックする

ように注意しましょう。[詳細]セクションの下側でクリックすると、指定した行数で改ペー

ジできない場合があります。

p.56 操作:指定した行数で改ページされることを確認する Step3

[カウンタ]テキストボックスに連番が振られていることを確認します。また、2ページ目も

必ず確認するようにしましょう。10行表示されていない場合は、p.57のヒント「2ページ

以降が10件ごとに表示されない場合」の説明を参考にして、レポートの設定を修正します。

p.57 操作:テキストボックスを非表示にする Step1

デザインビューに切り替えずに、印刷プレビューからVisual Basic Editorに切り替えるこ

ともできます。ただし、印刷プレビューの状態では[上書き保存]ボタンが表示されません。

そのため、ここでは、いったんデザインビューに切り替えてから、Visual Basic Editorに

切り替えています。

p.58 操作:テキストボックスを非表示にする Step9

[印刷プレビュー]ツールバーの[閉じる]ボタンをクリックするとデザインビューが表示さ

れます。ここでは、[R売上一覧]レポートを閉じるため、[ウィンドウを閉じる]ボタンを

クリックします。

第4章 クエリの活用

4.1 クエリとSQLビューの関連

4.1.2 SQLステートメントについて(p.64)

次の4種類のクエリは、クエリのデザインビューでは作成できないため、SQLステートメン

トを記述する必要があります。

・パススルークエリ

SQL ServerなどのODBCデータベースサーバーに直接コマンドを送る場合に使用するク

エリです。ODBC(Open Database Connectivity)は、異なるデータベースやアプリ

ケーション間でデータを共有する標準的な接続方法です。

・データ定義クエリ

テーブルの作成、変更、削除が行えるクエリです。たとえば、CREATE TABLEステート

メントを使用すると、フィールドやデータ型を設定したテーブルの作成が行えます。

・ユニオンクエリ

UNION演算子を使用して、複数の選択クエリの結果を組み合わせて表示するクエリです。

ユニオンクエリを使用すると2つのテーブルのデータを1つに結合できます。

・サブクエリ

クエリデザインビューで、デザイングリッドの[フィールド]セルや[抽出条件]セルに

SQLステートメントを記述します。たとえば、別のクエリのSQLステートメントを抽出

条件として指定する場合に使用します。

p.64 ヒント:末尾のセミコロン(;)

SQLビューで表示されているセミコロンは、省略することができます。ただし、クエリを閉

じて再度SQLビューで確認すると、自動的にセミコロン(;)が追加されます。

p.64 ■SELECT(セレクト)ステートメント

SELECTステートメントで、複数のフィールドやすべてのフィールドを指定する場合は、次

のように記述します。

・複数のフィールドの指定

SELECT T顧客マスター.顧客名, T顧客マスター.TEL

FROM T顧客マスター;

Page 12: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

12

[T顧客マスター]テーブルの "顧客名" と "TEL" フィールドを表示する選択クエリです。

・すべてのフィールドの指定

[T顧客マスター]テーブルのすべてのフィールドを表示する選択クエリです。ただし、この

ステートメントは、クエリのデザインビューで確認すると、フィールドリストのアスタリス

ク(*)をダブルクリックで追加した状態になります。

すべてのフィールド名がデザイングリッドに表示されている場合は、複数のフィールドの指

定と同じ表示になります。

また、クエリのデザインビューで作成したクエリをSQLビューで表示すると、半角の角かっ

こ[ ]や半角のかっこ( )が自動的に追加される場合があります。自動的に追加されたかっこ

類を削除しても、クエリの処理に影響はありません。ただし、かっこ類を削除してから上書

き保存してクエリを閉じ、再度SQLビューで開くと、再び、自動的にかっこ類が追加される

場合があります。

角かっこは、フィールド名に "SELECT" や "FROM" などSQLの予約語(ステートメントや

句)を使用すると、SQLの予約語と識別するために追加されます。また、フィールド名にス

ペースが含まれる場合も、角かっこで囲まれます。たとえば、[T顧客マスター]テーブルの

"select" という名前のフィールドを表示するクエリをSQLステートメントで記述する場合、

SQLビューでは次のように表示されます。

かっこ( )は、式の優先順位を識別するために追加されます。たとえば、"都道府県" フィール

ドの抽出条件に "東京都" と設定すると次のように表示されます。

p.66 ヒント:クエリプロパティの表示方法

メニューとツールバーを使った方法は、あらかじめ選択している場所によっては、クエリプ

ロパティが表示されない場合があります。

たとえば、デザイングリッドの[顧客名]などのフィールドを選択している場合は、[フィー

ルドプロパティ]が表示されます。この場合は、デザインビューのフィールドリスト以外の

部分をクリックすると、クエリプロパティが表示されます。

p.66 操作:SQLステートメントを編集する Step4

ORDER BY句を追加するときは、FROM句末尾のセミコロン(;)の前で改行するように注

意しましょう。セミコロン(;)が2行目に残っていると、クエリを実行したときにエラーが

発生します。また、SQLステートメントは、小文字で入力しても機能します。

WHERE (((T顧客マスター.都道府県)="東京都"))

SELECT T顧客マスター.都道府県, T顧客マスター.[select]

SELECT T顧客マスター.*FROM T顧客マスター;

このアスタリスクをダブ

ルクリックした状態

Page 13: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

13

時間に余裕があれば、SQLステートメントの編集後に[F顧客一覧]フォームをフォームビ

ューで開き、コンボボックスのリストを確認するとよいでしょう。

4.2 アクションクエリを実行するには

4.2.1 VBAでアクションクエリを実行する

p.68 ■VBAでSQLステートメントを記述する方法

複数行に分けてSQLステートメントを記述する場合も、句と句の間には半角スペースが必要

になります。そのため、行の末尾のダブルクォーテーション(")の前にスペースを入れます。

p.68 注意

VBAで、SELECTステートメントを使用して選択クエリを作成して実行する場合は、6章で

説明するADOやDAOを使用します。クエリオブジェクトとして作成している場合は、

OpenQueryメソッドを使用して実行します。

4.2.2 追加クエリ(p.69)

追加クエリについて、[T書籍マスター]テーブルの "絶版" フィールドの値が "Yes" のレコ

ード(書籍IDが "2" と"3")がコピーされ、[T絶版書籍]テーブルに追加されたことをテキ

ストの図を使用して説明しましょう。

p.70 ■変数を使って処理を分岐する

テキストのフローチャートは、この後のp.73で作成するプロシージャの処理内容を表してい

ます。フローチャートに掲載されているメッセージボックスを表示し、[はい]または[いい

え]ボタンをクリックしたときの戻り値を変数に格納します。分岐処理は、If~Thenステー

トメントを使用しています。分岐処理の条件は、クリックした戻り値が "vbNo" (つまり

[いいえ]ボタンをクリックした場合)の場合という設定をして、条件に当てはまれば(真の

場合)、プロシージャの処理を終了するように記述しています。

[はい]ボタンがクリックされた場合は、アクションクエリを実行することを、フローチャー

トを使用して説明しましょう。

p.73 操作:追加クエリを実行する Step5

「Dim msg As Integer」は、変数の宣言を行うステートメントです。変数名はmsg(エム

エスジー)で、データ型は数値型を設定していることを補足しましょう。

p.74 操作:メッセージボックスのボタンの動作を確認する Step4

講師だけでも、[T絶版書籍]テーブルを開いて、処理が実行されていないことを確認するデ

モを行うとよいでしょう。

4.2.3 削除クエリ

p.75 ■DELETE(デリート)ステートメント

クエリのデザインビューで削除クエリを作成してからSQLビューを表示すると、「DELETE」

の後にフィールド名が自動的に追加された状態で表示されます。本来、削除クエリは、レコ

ード単位で削除するため、フィールド名の指定は必要ありません。SQLステートメントを記

述する場合も、フィールド名の指定は記述しないことを補足しましょう。

4.3 アクションクエリのメッセージを制御するには(p.79)

ここまでの操作では、追加クエリと削除クエリを個別に実行しましたが、実際には、追加ク

エリと削除クエリを連続して実行するプロシージャになります。この場合、システムメッセ

ージが2回表示され、それぞれ[はい]ボタンをクリックしないと処理を続行することがで

きないことを補足しましょう。

Page 14: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

14

p.83 操作:メッセージが非表示になることを確認する Step8

時間に余裕があれば、オブジェクトをコピーして貼り付け、実際に削除してシステムメッセ

ージが表示されることを確認しましょう。ただし、既存のオブジェクトを削除してしまうと

操作に影響がありますので、注意しましょう。

第5章 エクスポート

5.1 Excelへエクスポートするには

5.1.1 コンボボックスからオブジェクトを選択する

p.87 コンボボックスに表示するリストを作成する Step4

プロパティシートの[値集合]ボックスに直接オブジェクト名を入力するとオートコレクト

機能が働き、「T」を入力すると[T顧客マスター]と表示されます。この場合は、Enterキ

ーで確定してから、続きを入力します。

「注意」で紹介したズームウィンドウを利用して入力した場合は、オートコレクト機能は働き

ません。

p.88 コンボボックスのドロップダウンリストを確認する Step2

コンボボックスに選択肢以外を入力して[OK]ボタンをクリックすると、次のメッセージが

表示されます。これは、"入力チェック" プロパティを "はい" に設定しているためです。

5.1.2 テーブルまたはクエリをエクスポートする

p.88 ■エクスポートを行う主なメソッド

Access形式でエクスポートする場合は、エクスポート先のデータベースファイルが新たに

作成されるのではなく、指定したオブジェクトが既存のAccessデータベースに出力されま

す。

p.89 ■TransferSpreadsheet(トランスファースプレッドシート)メソッド

引数の「ファイル名」で説明した "完全なパス" とは、ファイルの場所とファイル名をドライ

ブ名から記述することです。

Excelのデータをインポートやリンクする場合もTransferSpreadsheetメソッドを使用し

ます。インポートの場合は、メソッド名の直後の指定を「acImport」、リンクの場合は

「acLink」と記述します。

Excelのデータをインポートする場合は、次の書式で設定します。

書式 ドライブ名:¥フォルダ名¥ファイル名

ドライブ名の後ろはコロン(:)と円記号(¥)で区切り、フォルダ名とファ

イル名は円記号(¥)で区切ります。

使用例 c:¥test¥顧客.xls

cドライブの[test]フォルダの「顧客.xls」というファイルを指定します。

Page 15: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

15

5.1.3 エクスポート先のファイル名を指定する

p.93 ■InputBox(インプットボックス)関数

InputBox関数には、本テキストではメッセージとタイトルのみ紹介しますが、メッセージと

タイトル以外にも下記の引数があります。

5.2 エクスポートのエラーを防ぐには

5.2.1 オブジェクト名が未選択の場合(p.96)

本テキストで設定するエクスポート機能全体の流れは、次のようになります。

①[Fメニュー]フォームのコマンドボタンをクリックすると、[Fエクスポート]フォーム

を表示する。

②コンボボックスからオブジェクト名を選択して[OK]ボタンをクリックすると、ファイル

名を指定するためのダイアログボックスを表示する。

③ファイル名を入力して[OK]ボタンをクリックすると、エクスポートを実行する。

④エクスポート実行後、[Fエクスポート]フォームを閉じる

テキストp.96とp.98のフローチャートは、それぞれ上記②と③の処理において、エラーが

発生しないように追加する処理内容を示しています。

p.96のフローチャートの冒頭のひし形内の「コンボボックスの値が未選択?」の「コンボボ

ックス」とは、[Fエクスポート]フォームのコンボボックスを指しています。

5.2.2 ファイル名が未入力の場合の処理

p.98 ヒント:ファイル名のないExcelファイル

Excel 2000では、ファイル名のないExcelファイルのアイコンをダブルクリックしてブッ

クを開くことができます。

書式 InputBox(メッセージ, タイトル, 既定値, 水平位置, 垂直位置, _

ヘルプ, コンテキスト)

引数 既定値:テキストボックスに既定で入力される文字列を設定します。省略し

た場合は、テキストボックスは空欄になります。

水平位置:画面の左端からダイアログボックスの左端までの水平方向の距離

を、twip単位(567twips=1cm)で示す数式で指定します。省

略すると、水平方向に対して画面の中央に表示されます。

垂直位置:画面の上端からダイアログボックスの上端までの垂直方向の距離

を、twip単位で示す数式で指定します。省略すると、垂直方向に

対して画面の上端から約1/3の位置に表示されます。

ヘルプファイル:ダイアログボックスのヘルプを表示するために、使用する

ヘルプファイルの名前を指定します。次の引数の「コンテ

キスト」と合わせて指定します。

コンテキスト:ヘルプトピックに指定したコンテキスト番号を表す数式を指

定します。

書式 TransferSpreadsheet acImport, バージョン, テーブル名, ファイル名

引数 ワークシートの種類:インポートまたはリンクするExcelのバージョンを指

定します。

テーブル名:インポートまたはリンク先のテーブル名を指定します。テーブ

ル名はダブルクォーテーション(")で囲みます。

ファイル名:インポートまたはリンク元のExcelのファイル名を指定しま

す。既定のフォルダ以外は、完全なパスを指定します。

使用例 TransferSpreadsheet acImport, acSpredsheetTypeExcel9, _

"T社員マスター", "社員.xls"

既定のフォルダにあるExcel 2000-2002形式のファイル "社員.xls" を[T

社員マスター]テーブルにインポートします。

Page 16: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

16

p.99 操作:ダイアログボックスの処理を分岐する Step2

修正したプロシージャの構成について、次のように補足しましょう。

5.2.3 メニューフォームからエクスポートする

p.103 ヒント:OpenFormメソッド

OpenFormメソッドで、フォーム名以降の引数を省略した場合は、フォームビューで表示さ

れます。

第6章 レコードの操作

6.1 レコード操作のしくみ

p.106 ヒント:OLEプロパイダとは

AccessデータベースやSQL Serverなどに接続する場合、専用のコンポーネントが必要に

なりますが、このコンポーネントのことをプロバイダといいます。OLEDBプロパイダを使

用すると、さまざまなデータベースに接続することができます。

データベース OLEDBプロバイダ

Accessデータベース(.mdbファイル) OLE DB Provider for Microsoft Jet

SQL Server Microsoft OLE DB Provider for SQL Server

p.107 ADOのオブジェクトモデル

・ADOの主なオブジェクト

オブジェクト 機能

Connectionオブジェクト データベースへの接続を管理するオブジェクトで、指定したデータベー

スに接続してデータベースを操作します。

Recordsetオブジェクト テーブルやSQLステートメントの実行結果を取得し、レコードセット

内を移動して検索したり抽出できます。

Commandオブジェクト SQLステートメントを管理するオブジェクトです。

ADOは、AccessだけではなくSQL ServerやOracleなどさまざまなデータベースに接続

して操作できるオブジェクトです。Recordsetオブジェクトを経由し、レコードセットを開

いて、レコードのデータを検索したり値の編集などが行えますが、新規にテーブルやクエリ

を作成することはできません。

Private Sub OK_Click( )

If fname = "" Then

MsgBox "キャンセルします"

Exit Sub

End If

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _

Me!オブジェクト選択, fname & ".xls"

MsgBox "エクスポートしました"

DoCmd.Close

End Sub

} ダイアログボックスに何も入力されていない場合の処理

}ダイアログボックスにファイル名が入力された場合の処理

Page 17: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

17

テーブルやクエリを作成する場合は、ADOの拡張機能であるADOX(Active Data

Objects Extensions for Data Definition Language and Security)オブジェクトを利

用します。ADOXは、既定で利用できるように設定されていないため、[ツール]メニュー

の[参照設定]をクリックし、[参照設定]ダイアログボックスで、[Microsoft ADO Ext

2.5 for DDL and Security]のチェックボックスをオンにして、ライブラリの追加をする

必要があります。参照設定を追加する手順については、「6.3.1 オブジェクトライブラリの

参照設定」で説明しています。

・ADOXの主なオブジェクト

オブジェクト 機能

Catalogオブジェクト データベースへの接続を管理します。

Tableオブジェクト 接続したデータベースのテーブルを管理します。

Viewオブジェクト 接続したデータベースの選択クエリを管理します。

p.107 ■DAOとは

DAOは、Microsoft Jetデータベースエンジンを操作するオブジェクトで、mdb形式のデ

ータベースを操作する場合に適しており、オブジェクトも多く用意されています。

・DAOの主なオブジェクト

オブジェクト 機能

TableDefオブジェクト テーブルの定義を操作します。

QueryDefオブジェクト クエリの定義を操作します。

Recordsetオブジェクト データベースのデータをレコードのレベルで操作します。

6.2 ADOを利用するには

6.2.1 ADOの処理を作成する(p.109)

本テキストでは、テキストの構造図の右側(①~④の説明文)で示した順番で、プロシージ

ャの作成方法を説明していきます。

p.109 ヒント:ADODBとは

ライブラリの参照設定を追加すると、ADOとDAOと2つのオブジェクトモデルを使用する

ことができます。たとえば、Recordsetオブジェクトは、ADOとDAO両方にあるオブジェ

クトです。複数のオブジェクトモデルを使用する場合、どちらのモデルのオブジェクトかわ

かるように、ADOの場合は「ADODB.Recordset」、DAOの場合は「DAO.Recordset」

と記述します。

Page 18: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

18

各オブジェクトライブラリで利用できるオブジェクトやプロパティ、メソッドなどは、

Visual Basic Editorのオブジェクトブラウザで確認できます。オブジェクトブラウザを表

示するには、[表示]メニューの[オブジェクトブラウザ]をクリックします。オブジェクト

ブラウザの[プロジェクト/ライブラリ]ボックスの右端にある下向き三角のボタンをクリッ

クし、一覧から表示したいオブジェクトライブラリ名をクリックします。

ADOのオブジェクトライブラリ

p.115 操作:レコードの処理を行う Step1

[Q割引]クエリは、"割引" フィールドにあらかじめパーセント(%)の書式設定が設定され

ています。そのため値を代入するステートメントには、「0.2」と「0」とだけ入力すること

を補足しましょう。

6.2.2 ループ処理を作成する

p.119 ■RecordsetオブジェクトのEOF(イーオーエフ)プロパティ

■RecordsetオブジェクトのMoveNext(ムーブネクスト)メソッド

ループ処理の条件として「RecordsetオブジェクトのEOFプロパティがTrueになるまで」

という指定を行い、MoveNextメソッドを使ってカレントレコードを移動すると、すべての

レコードにアクセスできることを、テキストの図を使用して説明しましょう。

p.122 ヒント:Do~Loopステートメントの種類

それぞれの繰り返し方法について、次のように補足しましょう。

◆条件を満たさなければ1回も処理を実行しない(ループの前に条件判断)

・条件を満たすまで処理を実行する(Do Until 条件式~Loop)

条件が偽(False)の場合に処理を実行し、真(True)になると処理を実行せずに繰り返

しを終了します。

処理を実行

条件を確認

終了

Loop

いいえ

はい

[プロジェクト/ライブラリ]

ボックス

Page 19: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

19

・条件を満たしている間処理を実行する(Do While 条件式~Loop)

条件が真(True)の場合に処理を実行し、偽(False)になると処理を実行せずに繰り返

しを終了します。

◆条件を満たしていなくても最低1回は処理が実行される(ループの後に条件判断)

・条件を満たすまで処理を実行する(Do~Loop Until 条件式)

・条件を満たしている間処理を実行する(Do~Loop While 条件式)

6.3 DAOを利用するには

6.3.1 オブジェクトライブラリの参照設定

p.123 操作:オブジェクトライブラリの参照設定をする

DAOは、参照設定を行うと各オブジェクトライブラリで利用できるオブジェクトやプロパテ

ィ、メソッドなどオブジェクトブラウザで確認できます。

処理を実行

条件を確認

終了

Loop

はい いいえ

処理を実行

条件を確認

終了

Loop

いいえ はい

処理を実行

条件を確認

終了

Loop

はい

いいえ

Page 20: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

20

DAOのオブジェクトライブラリ

6.3.2 DAOの処理を作成する

p.124 ②データベースへ接続

DBEnginオブジェクトでは、Accessデータベースを開くと、Workspacesコレクション

と既定のWorkspaceオブジェクトを確立します。カレントデータベース以外の.mdbファイ

ルに接続するには、OpenDatabaseメソッドを使用し、次のように設定します。

上記の例では、データベース "テスト.mdb" に接続します。

p.125 ■RecordsetClone(レコードセットクローン)プロパティ

RecordsetCloneプロパティで作成したレコードセットのコピーは、別のオブジェクトとな

ります。RecordsetCloneプロパティで作成されたレコードセットオブジェクトは、フォー

ムを閉じるまで有効です。たとえば、p.129で作成するプロシージャでは、ふりがな変更を

行うプロシージャを1回実行すると、カレントレコードの位置はフォームを閉じるまで保持

されるので、レコードセットオブジェクトのカレントレコードの位置は最終レコードに移動

しています。そのため、1回実行した後、"ふりがな" フィールドに全角カタカナを入力し、

再度[ふりがな変更]ボタンをクリックしても、半角カタカナには変更されません。

次の太字部分のように、ループ処理の前に先頭レコードにカーソルを移動するように設定す

ると、[ふりがな変更]ボタンを何度でも使用できるようになります。

また、RecordsetCloneプロパティで作成したレコードセットオブジェクトの位置は、

Bookmarkプロパティで確認できます。

たとえば、カレントレコードを最終レコードに移動してフォームのレコードソースと同期さ

せるには、次の太字部分のように記述します。

Private Sub ふりがな変更_Click( )

Set rs = Me.Form.RecordsetClone

rs.MoveFirstDo Until rs.EOF

rs.Edit

End Sub

Dim db As DAO.Database

Set db = DBEngine.OpenDatabase("テスト.mdb")

Page 21: Microsoft Accessec.nikkeibp.co.jp/msp/TXT/download/pdf/pdf/acvbak_g.pdf3 本文の注意点と参考情報 本文の章立てに沿って、主な注意点、参考情報をまとめました。セミナーを実施する際の参考と

21

Private Sub ふりがな変更_Click( )

Loop

rs.MoveLastMe.Bookmark = rs.Bookmarkrs.Close

End Sub

Microsoft®Accessセミナーテキスト VBA活用編[2000/2002対応]講習の手引き2004年5月11日 発行

著作・制作  日経BPソフトプレス

発   行  日経BPソフトプレス

〒102-0093 東京都千代田区平河町2-7-1

FAX (03)3221-6138

電子メール [email protected]

ホームページ http://bpstore.nikkeibp.co.jp/msp/

Copyright©2004 Microsoft Corporation, 日経BPソフトプレス