ここではフォームやレポートの開く・閉じる・等のデータベースオブジェクトに対する基本的な操作について紹介します。
OpenTableメソッド/OpenQueryメソッド/OpenFormメソッド/OpenReportメソッド
OpenTableメソッドはテーブルをOpenQueryメソッドはクエリをOpenFormメソッドはフォームをOpenReporotメソッドはレポートをそれそれ開きます。
【書式】
DoCmd.OpenTable テーブル名,[ビュー],[データモード]
DoCmd.OpenQuery クエリ名,[ビュー],[データモード]
DoCmd.OpenForm フォーム名,[ビュー],[フィルタ名],[フィルタ条件式],[データモード]
,[ウィンドゥモード],[OpenArgs]
DoCmd.OpenReport レポート名,[ビュー],[フィルタ名],[フィルタ条件式]
,[ウィンドゥモード],[OpenArgs]
それぞれのメソッドに対する主な引数は下表の通りです。
メソッド | 引数 | 定数 | 説明 |
---|---|---|---|
OpenTable | テーブル名 | – | 開くテーブル名。 |
– | ビュー (省略可) | acViewNormal(規定) acViewDesign acViewPreview | データシートビューで開く。 デザインビューで開く。 印刷プレビューで開く。 |
– | データモード (省略可) | acAdd acEdit(規定) acReadOnly | 追加モードで開く。 編集モードで開く。 読取専用モードで開く。 |
OpenQuery | クエリ名 | – | 開くクエリ名。 |
– | ビュー (省略可) | ※OpenTableと同じ。 | ※OpenTableと同じ。 |
– | データモード (省略可) | ※OpenTableと同じ。 | ※OpenTableと同じ。 |
OpenForm | フォーム名 | – | 開くフォーム名。 |
– | ビュー (省略可) | acNormal(規定) acDesign acPreview acFormDS acLayout | フォームビューで開く。 デザインビューで開く。 印刷プレビューで開く。 データシートビューで開く。 レイアウトビューで開く。 |
– | フィルタ名 (省略可) | – | クエリ名を文字列で 指定する。 |
– | フィルタ条件式 (省略可) | – | SQL文字列式で指定する。 |
– | データモード (省略可) | acFormPropertySettings (規定) acFormAdd acFormEdit acFromReadOnly | フォームのプロパティに 依存する。 追加モードで開く。 編集モードで開く。 読取専用モードで開く。 |
– | ウィンドゥモード (省略可) | acWindowNormal(規定) adHidden acIcon | 通常の状態で開く。 非表示状態で開く。 最小化状態で開く。 |
– | OpenArgs (省略可) | – | – |
OpenReport | レポート名 | – | 開くレポート名。 |
– | ビュー (省略可) | acViewNormal(規定) acViewDesign acViewPreview acViewLayaout | レポートを直接印刷する。 デザインビューで開く。 印刷プレビューで開く。 レイアウトビューで開く。 |
– | フィルタ名 (省略可) | – | ※OpenFormと同じ。 |
– | フィルタ条件式 (省略可) | – | ※OpenFormと同じ。 |
– | ウィンドゥモード (省略可) | ※OpenFormと同じ。 | ※OpenFormと同じ。 |
– | OpenArgs (省略可) | – | ※OpenFormと同じ。 |
Sub Open_1()
DoCmd.OpenTable "T_会員名簿", acViewNormal, acReadOnly 'テーブルを読み取り専用モードで開く。
DoCmd.OpenForm "F_会員名簿", , , , acFormAdd 'フォームを追加モードで開く。
DoCmd.OpenReport "R_会員名簿", acViewPreview 'レポートをプレビューモードで開く
End Sub
SelectObjectメソッド
指定したデータベースオブジェクトを選択しアクティブにします。
【書式】
DoCmd.SelectObject オブジェクトの種類,オブジェクト名,[ナビゲーションで選択]
それぞれの引数に対する主な指定は下表の通りです。
引数 | 定数 | 説明 |
---|---|---|
オブジェクトの種類 | acTable acQuery acForm acReport | テーブルを対象とする。 クエリを対象とする。 フォームを対象とする。 レポートを対象とする。 |
オブジェクト名 | – | 選択するオブジェクト名を指定する。 |
ナビゲーションでの選択 (省略可) | True False(規定) | ナビゲーションウィンドゥ上で選択する。 開いているオブジェクトのみ選択する。 |
Sub SelctObject_1()
DoCmd.OpenForm "F_会員名簿"
DoCmd.OpenReport "R_会員名簿", acViewPreview 'レポートをプレビューモードで開く(アクティブ)
DoCmd.SelectObject acForm, "F_会員名簿" 'フォームがアクティブになる。
End Sub
GoToControlメソッド
指定したフォールドまたはコントロールにフォーカスを移動します。
【書式】
DoCmd.GotoControl コントロール名
Sub GotoControl_1()
DoCmd.OpenForm "F_会員名簿"
DoCmd.GoToControl "年齢" 'フォーカスを年齢に移動します。
End Sub
Maximizeメソッド/Minimizeメソッド/Restoreメソッド
Maximizeメソッドはアクティブウィンドゥを最大化して表示します。Minimizeメソッドはアクティブウィンドゥを最小化します。Restoreメソッドはアクティブウィンドゥをものサイズに戻します。
【書式】
DoCmd.Maximize
Docmd.Minimize
DoCmd.Restore
Sub Maxmize_Minimize_Restore()
DoCmd.OpenTable "T_会員名簿"
DoCmd.SelectObject acTable, "T_会員名簿"
DoCmd.Minimize
MsgBox "最小化しました。"
DoCmd.SelectObject acTable, "T_会員名簿"
DoCmd.Maximize
MsgBox "最大化しました。"
DoCmd.SelectObject acTable, "T_会員名簿"
DoCmd.Restore
MsgBox "元に戻しました。"
End Sub
MoveSizeメソッド
アクティブウィンドウの移動やサイズ変更を行います。
【書式】
Docmd.MoveSize [水平位置],[垂直位置],[ウィンドゥ位置],[ウィンドゥ幅],[ウィンドゥ高さ]
最低一つの引数を指定します。省略した引数は現在の設定値が使用されます。
Sub MoveSize_1()
DoCmd.OpenTable "T_会員名簿"
MsgBox "T_会員名簿の位置を変更します。"
DoCmd.MoveSize 200, 400
MsgBox "T_会員名簿の表示位置を変更しました。"
End Sub
CopyObjectメソッド/DeleteObjectメソッド/Renameメソッド
CopyObjectメソッドは指定したオブジェクトをコピーします、DeleteObjectメソッドは指定したオブジェクトを削除します。Renameメソッドは指定したオブジェクトの名前を変更します。
【書式】
Docmd.CopyObject [コピー先データベース],[新しい名前],[オブジェクトの種類],[オブジェクト名]
DoCmd.DeleteObject [オブジェクトの種類],[オブジェクト名]
DoCmd.Rename 新しい名前,[オブジェクトの種類],[オブジェクト名]
それぞれの引数に対する主な指定は次の通りです。
メソッド名 | 引数 | 定数 | 説明 |
---|---|---|---|
CopyObject | コピー先データベース (省略可) | – | コピー先のデータベースのパスとファイル名を指定。省略するとカレントデータベースになる。 |
– | 新しい名前 (省略可) | – | 新しい名前を指定。両略すると同じ名前になる。 |
– | オブジェクトの種類 (省略可) | acDefault(規定) acTable acQuery acForm acReport | ナビゲーションウィンドゥで選択されたオブジェクト。 テーブルを対象とする。 クエリを対象とする。 フォームを対象とする。 レポートを対象とする。 |
– | オブジェクト名 (省略可) | – | コピーするオブジェクトの名前を指定する。 |
DeleteObject | オブジェクトの種類 (省略可) | ※CopyObjectメソッドと同じ。 | ※CopyObjectメソッドと同じ。 |
– | オブジェクト名 (省略可) | – | 削除するオブジェクトの名前を指定する。 |
Rename | 新しい名前 | – | 新しい名前を指定する。 |
– | オブジェクトの種類 (省略可) | ※CopyObjectメソッドと同じ。 | ※CopyObjectメソッドと同じ。 |
– | オブジェクト名 (省略可) | – | 変更するオブジェクトの名前を指定する。 |
Sub CopyObject_DeleteObject_Rename()
MsgBox "フォームをコピーします。"
DoCmd.CopyObject , "F_会員名簿copy", acForm, "F_会員名簿"
Stop 'ここでナビゲーションウィンドゥでコピーされたことを確認します。
MsgBox "コピーしたフォームをリネームします。"
DoCmd.Rename "F_会員名簿rename", acForm, "F_会員名簿copy"
Stop 'ここでナビゲーションウィンドゥで名前変更されたことを確認します。
MsgBox "リネームしたフォームを削除します。"
DoCmd.DeleteObject acForm, "F_会員名簿rename"
'最後にナビゲーションウィンドゥでコピーされたフォームが削除されたことを確認します。
End Sub
サンプルコードを実行するとオブジェクトの変化は下図のように変化します。
PrintOutメソッド
開いているデータベースオブジェクトのアクティブウィンドゥを印刷します。
【書式】
DoCmd.PrintOut [印刷範囲],[開始ページ],[終了ページ],[印刷品質],[印刷部数],[部単位の印刷]
それぞれの引数に対する主な指定は下表の通りです。
引数 | 定数 | 説明 |
---|---|---|
印刷範囲 (省略可) | acPrintAll(規定) acSelection acPages | オブジェクト全体を印刷します。 オブジェクトの選択した部分を印刷します。 指定したページを印刷します。 |
開始ページ (省略可) | – | – |
終了ページ (省略可) | – | – |
印刷品質 (省略可) | acHigh(規定) acMedium acLow acDraft | 高 中 低 簡易 |
部単位の印刷 (省略可) | True(規定) Falese | 部単位で印刷する。 部単位で印刷しない。 |
Sub PrintOut_1() DoCmd.OpenForm "F_会員名簿" DoCmd.PrintOut acPrintAll End Sub
Saveメソッド/Closeメソッド
Saveメソッドは指定したオブジェクトを保存します。Closeメソッドは指定したオブジェクトを閉じます。
【書式】
DoCmd.Save [オブジェクトの種類],[オブジェクトの名前]
DoCmd.Close [オブジェクトの種類],[オブジェクトの名前]
引数に対する主な指定は下表の通りです。
メソッド | 引数 | 定数 | 説明 |
---|---|---|---|
Save | オブジェクトの種類 (省略可) | – | ※CopyObjectと同じ |
– | オブジェクトの名前 (省略可) | – | 保存するオブジェクトの名前を指定する。 |
Close | オブジェクトの種類 (省略可) | – | ※CopyObjectと同じ |
– | オブジェクトの名前 (省略可) | ー | 閉じるオブジェクトの名前を指定する。 |
ー | 保存方法 (省略可) | acSavePrompt(規定) acSaveYes acSaveNo | オブジェクトの保存をユーザーに確認する。 指定したオブジェクトを保存する。 指定したオブジェクトを保存しない。 |
コメント