基本操作(DoCmd)【Access】

Docmdオブジェクト【Access】 06.Docmdオブジェクト

ここではフォームやレポートの開く・閉じる・等のデータベースオブジェクトに対する基本的な操作について紹介します。

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
オブジェクトの保存をユーザーに確認する。
指定したオブジェクトを保存する。
指定したオブジェクトを保存しない。

次はレコード操作(DoCmd)【Access】です。

コメント

タイトルとURLをコピーしました