マクロ命令実行オブジェクトが、DoCmdオブジェクトです。
どのアクションを実行するかは、メソッドで指定します。
ApplyFilter メソッドは、Visual Basic で "ApplyFilter/フィルタの実行" アクションを実行します。
フォームの表示データを絞り込む時に使います
'絞り込むフィールド名・・・[氏名](データ型はテキスト型)
'絞り込む値・・・山田太郎
DoCmd.ApplyFilter "", "[氏名]='山田太郎'"
'絞り込むフィールド名・・・[金額](データ型は通貨型)
'絞り込む値・・・10,000円以上
DoCmd.ApplyFilter "", "[金額]>=10000"
Visual Basic で "Beep/警告音" アクションを実行します。
エラーが発生した時ときなど、警告音を鳴らしたい場面で使用します。
'警告音を鳴らす
DoCmd.Beep
Visual Basic で "CancelEvent/イベントのキャンセル" アクションを実行します。
CancelEventメソッドは、イベントによって実行されたときにのみ有効です。
'イベントをキャンセルします
DoCmd.CancelEvent
Visual Basic で "Close/閉じる" アクションを実行します。
VBAでフォーム、レポート、データシートなど開いているオブジェクトを閉じる。
'アクティブオブジェクト(自分自身)を閉じる
DoCmd.Close
'指定フォームを閉じる
'閉じるフォーム名・・・F_得意先
DoCmd.Close acForm, "F_得意先"
'指定レポートを閉じる
'閉じるレポート名・・・R_得意先一覧表
DoCmd.Close acReport, "R_得意先一覧表"
Visual Basic で "DeleteObject/オブジェクトの削除" アクションを実行します。
VBAで指定したオブジェクトを削除する。
'オブジェクトを削除します
DoCmd.Close
'テーブルを削除する
'削除するテーブル名・・・T_履歴
DoCmd.DeleteObject acTable, "T_履歴"
'クエリを削除する
'削除するクエリ名・・・Q_仮集計
DoCmd.DeleteObject acQuery, "Q_仮集計"
'フォームを削除する
'削除するフォーム名・・・F_伝票入力
DoCmd.DeleteObject acForm, "F_伝票入力"
'レポートを削除する
'削除するレポート名・・・R_仮集計一覧
DoCmd.DeleteObject acReport, "R_仮集計一覧"
Visual Basic で "SelectObject/オブジェクトの選択" アクションを実行します。
VBAでフォーム、レポート、データシートなど開いているオブジェクトを選択する。
'開いているフォーム"F_得意先マスタ"をアクティブにします
'指定したフォームが開いていない場合はエラーになります。
DoCmd.SelectObject acForm, "F_得意先マスタ"
'レポート"R_得意先マスタ"をプレビュー表示してアクティブにします
DoCmd.OpenReport "R_得意先マスタ", acViewPreview
DoCmd.SelectObject acReport, "R_得意先マスタ"
Visual Basic で "Rename/名前の変更" アクションを実行します。
'テーブル"T_得意先マスタ"を"T_得意先マスタ_bak"という名前に変更します
DoCmd.Rename "T_得意先マスタ_bak", acTable, "T_得意先マスタ"
Visual Basic で "CopyObject/オブジェクトのコピー" アクションを実行します。
'既存のテーブル"T_得意先マスタ"を"T_得意先マスタ_bak"という名前でコピーします
DoCmd.CopyObject , "T_得意先マスタ_bak", acTable, "T_得意先マスタ"
Visual Basic で "Save/オブジェクトの保存" アクションを実行します。
'"T_得意先マスタ"を上書き保存します
DoCmd.Save acForm, "T_得意先マスタ"
Access に対して適切なメニューまたはツールバー コマンドが表示されます。
「メニューの実行」というアクション自体は、Access2000以降は存在しません
旧システムとの互換用と思ってください。
DoCmd.DoMenuItem | RunCommand |
acFormBar, acEditMenu, 2 | acCmdCopy |
acFormBar, acEditMenu, 5 | acCmdPasteAppend |
acFormBar, acEditMenu, 6 | acCmdDeleteRecord |
acFormBar, acEditMenu, 8 | acCmdSelectRecord |
acFormBar, acEditMenu, 10 | acCmdFind |
acFormBar, acEditMenu, 12, 4 | acCmdRecordsGoToNew |
acFormBar, acEditMenu, acCopy | acCmdCopy |
acFormBar, acEditMenu, acPaste | acCmdPaste |
acFormBar, acEditMenu, acUndo | acCmdUndo |
acFormBar, acFile, acSaveForm | acCmdSave |
acFormBar, acRecordsMenu, 0, 2 | acCmdAdvancedFilterSort |
acFormBar, acRecordsMenu, 2 | acCmdApplyFilterSort |
acFormBar, acRecordsMenu, 5 | acCmdRefresh |
acFormBar, acRecordsMenu, acSaveRecord | acCmdSaveRecord |
acFormBar, 7, 6 | acCmdSizeToFit |
1, 3, 3 | acCmdNewObjectReport |
3, acEditMenu, acPaste | acCmdPaste |
Visual Basic で "Echo/エコー" アクションを実行します。。
'画面の再描画を止める
DoCmd.Echo False
'画面の再描画を行う
DoCmd.Echo True
Visual Basic で "FindRecord/レコードの検索" アクションを実行します。
VBAでフォーカスのあるコントロールを検索する。
'テキストボックス[氏名]の内容が"山田"で始まる最初のレコードを検索します
'検索の対象となるコントロールにフォーカスを移動
DoCmd.GoToControl "氏名"
'文字列の先頭と照合
DoCmd.FindRecord "山田", acStart
'テキストボックス[氏名]の内容が"山田"で始まる最初のレコードを検索します
'検索の対象となるコントロールにフォーカスを移動
DoCmd.GoToControl "氏名"
'文字列と部分一致条件で照合
DoCmd.FindRecord "田", acAnywhere
検索条件
acAnyWhere...部分一致
acEntire.....フィールド全体と一致(規定値)
acStart......フィールドの先頭と一致
Visual Basic で "FindNext/次を検索" アクションを実行します。
'「レコードの検索」で実行した条件に合う、次のレコードを検索します
'条件に合う、次のレコードを検索します
DoCmd.FindNext
Visual Basic で "GoToControl/コントロールの移動" アクションを実行します。
特定のコントロールにフォーカスを移動する
'コントロール名[氏名]にフォーカスを移動します
DoCmd.GoToControl "氏名"
Me!氏名.SetFocus'でも同じ動作をします
Visual Basic で "GoToPage/ページの移動" アクションを実行します。
改ページコントロールで複数ページ分けられたフォームのページ移動を行います
'フォームの2ページ目に移動します
DoCmd.GoToPage 2
Visual Basic で "GoToRecord/レコードの移動" アクションを実行します。
開いているテーブル、フォーム、クエリ、のカレントレコードを移動します。
'カレントフォームのレコードを1レコード次に進めます
DoCmd.GoToRecord , , acNext
'カレントフォームのレコードを10レコード次に進めます
DoCmd.GoToRecord , , acNext, 10
'フォーム"F_得意先マスタ"のレコードを1レコード次に進めます
DoCmd.GoToRecord acForm, "F_得意先マスタ, acNext
'フォーム"F_得意先マスタ"のレコードを10レコード次に進めます
DoCmd.GoToRecord acForm, "F_得意先マスタ, acNext, 10
'カレントフォームのレコードを1レコード前に戻します
DoCmd.GoToRecord , , acPrevious
'カレントフォームのレコードを10レコード前に戻します
DoCmd.GoToRecord , , acPrevious, 10
'フォーム"F_得意先マスタ"のレコードを1レコード前に戻します
DoCmd.GoToRecord acForm, "F_得意先マスタ, acPrevious
'フォーム"F_得意先マスタ"のレコードを10レコード前に戻します
DoCmd.GoToRecord acForm, "F_得意先マスタ, acPrevious, 10
'カレントフォームのレコードを先頭レコードに移動します
DoCmd.GoToRecord , , acFirst
'フォーム"F_得意先マスタ"のレコードを先頭レコードに移動します
DoCmd.GoToRecord acForm, "F_得意先マスタ, acFirst
'カレントフォームのレコードを最終レコードに移動します
DoCmd.GoToRecord , , acLast
'フォーム"F_得意先マスタ"のレコードを最終レコードに移動します
DoCmd.GoToRecord acForm, "F_得意先マスタ, acLast
'カレントフォームのレコードを新しいレコードに移動します
DoCmd.GoToRecord , , acNewRec
'フォーム"F_得意先マスタ"のレコードを新しいレコードに移動します
DoCmd.GoToRecord acForm, "F_得意先マスタ", acNewRec
'カレントフォームのレコードを先頭から15番目のレコードに移動します
DoCmd.GoToRecord , , acGoTo, 15
'フォーム"F_得意先マスタ"のレコードを先頭から15番目のレコードに移動します
DoCmd.GoToRecord acForm, "F_得意先マスタ", acGoTo, 15
Visual Basic で "Hourglass/砂時計ポインタ" アクションを実行します。
マウスポインタを砂時計の形に変えるます。
'マウスポインタを砂時計にします
DoCmd.Hourglass True
'マウスポインタを元に戻します
DoCmd.Hourglass False
Visual Basic で "Maximize/最大化" アクションを実行します。
アクティブウィンドウを最大化する。
'アクティブなウィンドウを最大化します
DoCmd.Maximize
'[得意先マスタ]ウィンドウを最大化する
'※[得意先マスタ]が開いていること
DoCmd.SelectObject acForm, "F_得意先マスタ"
DoCmd.Maximize
Visual Basic で "Minimize/最小化" アクションを実行します。
アクティブウィンドウを最小化する。
'アクティブなウィンドウを最小化します
DoCmd.Minimize
'[得意先マスタ]ウィンドウを最小化する
'※[得意先マスタ]が開いていること
DoCmd.SelectObject acForm, "F_得意先マスタ"
DoCmd.Minimize
Visual Basic で "MoveSize/サイズ変更" アクションを実行します。
ウィンドウサイズを変更する。ウィンドウの位置を移動する。
※単位は twip です。1cm は 567twip です。
'アクティブなウィンドウのサイズを、幅10cm、高さ5cm に変更します
DoCmd.MoveSize , , 5670, 2835
'アクティブなウィンドウを、横4cm、縦3cm の位置に移動します
DoCmd.MoveSize 2268, 1701
Visual Basic で "SelectObject/オブジェクトの選択" アクションを実行します。
Accessの中に開いている各種ウィンドウを最前面に表示するには、DoCmd.SelectObjectを使います。
'"F_得意先マスタ"フォームをアクティブにします。
'※"F_得意先マスタ"フォームが開いていないとエラーとなります。
DoCmd.SelectObject acForm, "F_得意先マスタ"
'レポート"R_得意先マスタ"をプレビュー表示してアクティブにします。
DoCmd.OpenReport "R_得意先マスタ", acViewPreview
DoCmd.SelectObject acReport, "R_得意先マスタ"
Visual Basic で "OpenDataAccessPage/データアクセスページを開く" アクションを実行します。
'データアクセスページを開く
DoCmd.OpenDataAccessPage "ページ名"
Visual Basic で "OpenForm/フォームを開く" アクションを実行します。
【書式】[]は省略可 Viewを省略してFilterNameを設定するときはViewの[,]を省略できない。
DoCmd.OpenForm FormName [,View] [,FilterName] [,WhereCondition] [,DataMode] [,WindowMode] [,OpenArgs]
間違いやすいのが下記の
FilterName・・・クエリの名前を文字列式で指定します。
WhereCondition・・・SQL の WHERE 句を文字列式で指定します。 WHEREを指定する必要はありません。
です。
FilterNameにはフォームのレコードソースになるクエリやSQL文を指定します。
WhereConditionにはフィルタ条件を指定します。
'フォーム"F_得意先マスタ"をフォームビューで開きます
DoCmd.OpenForm "F_得意先マスタ"
または、DoCmd.OpenForm "F_得意先マスタ", acNormal
'フォーム"F_得意先マスタ"をデータシートビューで開きます
DoCmd.OpenForm "F_得意先マスタ", acFormDS
'フォーム"F_得意先マスタ"を印刷プレビューで開きます
DoCmd.OpenForm "F_得意先マスタ", acPreview
'フォーム"F_得意先マスタ"をデザインビューで開きます
DoCmd.OpenForm "F_得意先マスタ", acDesign
※VBAでフォーム自体を修正する場合などで使います
'フォーム"F_得意先マスタ"を追加専用フォームビューで開きます
DoCmd.OpenForm "F_得意先マスタ", , , , acAdd
※過去のレコードを間違って変更してしまうのを防げます
'フォーム"F_得意先マスタ"を読み取り専用フォームビューで開きます
DoCmd.OpenForm "F_得意先マスタ", , , , acReadOnly
※新規レコードの追加や変更を禁止できます
'フォーム"F_得意先マスタ"をアイコン(最小化した状態)で開きます
DoCmd.OpenForm "F_得意先マスタ", , , , , acIcon
'フォーム"F_得意先マスタ"をダイアログとして開きます
DoCmd.OpenForm "F_得意先マスタ", , , , , acDialog
'フォーム"F_得意先マスタ"非表示で開きます
DoCmd.OpenForm "F_得意先マスタ", , , , , acHidden
'クエリー"Q_得意先マスタ"をレコードソースとしてフォーム"F_得意先マスタ"を開きます
DoCmd.OpenForm "F_得意先マスタ", , "Q_得意先マスタ"
'住所が東京都の得意先だけをフォーム"F_得意先マスタ"に表示します
DoCmd.OpenForm "F_得意先マスタ", , , "[住所] Like '*東京都'"
※あいまいな条件抽出 - LIKE演算子
'"住所フリガナ"が"ア"~"オ"で始まる得意先だけをフォーム"F_得意先マスタ"に表示します
DoCmd.OpenForm "F_得意先マスタ", , , "[住所フリガナ] Like '[ア-オ]*'"
'"得意先CD"が100~110(数値型)の得意先だけをフォーム"F_得意先マスタ"に表示します
DoCmd.OpenForm "F_得意先マスタ", , , "[得意先CD] Between 100 And 110"
'フォーム"F_得意先マスタ"を、引数として"新規登録"を渡して開きます
DoCmd.OpenForm "F_得意先マスタ", , , , , , "新規登録"
Visual Basic で "OpenReport/レポートを開く" アクションを実行します。
【書式】[]は省略可 Viewを省略してFilterNameを設定するときはViewの[,]を省略できない。
DoCmd.OpenReport FormName [,View] [,FilterName] [,WhereCondition] [,WindowMode] [,OpenArgs]
間違いやすいのが下記の
FilterName・・・クエリの名前を文字列式で指定します。
WhereCondition・・・SQL の WHERE 句を文字列式で指定します。 WHEREを指定する必要はありません。
です。
FilterNameにはレポートのレコードソースになるクエリやSQL文を指定します。
WhereConditionにはレポートのフィルタ条件を指定します。
'レポート"R_得意先マスタ"を印刷します
DoCmd.OpenReport "R_得意先マスタ"
または、DoCmd.OpenReport "R_得意先マスタ", acViewNormal
'レポート"R_得意先マスタ"をプレビュー表示します
DoCmd.OpenReport "R_得意先マスタ", acPreview
'レポート"R_得意先マスタ"をデザインビューで開きます
DoCmd.OpenReport "R_得意先マスタ", acViewDesign
※VBAでレポート自体を修正する場合などで使います
'クエリー"Q_得意先マスタ"をレコードソースとしてレポート"R_得意先マスタ"を印刷します
DoCmd.OpenReport "R_得意先マスタ", , "Q_得意先マスタ"
'住所が東京都の得意先だけを、レポート"R_得意先マスタ"に印刷します
DoCmd.OpenReport "R_得意先マスタ", , , "[住所] Like '*東京都'"
※あいまいな条件抽出 - LIKE演算子
'"住所フリガナ"が"ア"~"オ"で始まる得意先だけを、レポート"R_得意先マスタ"に印刷します
DoCmd.OpenReport "R_得意先マスタ", , , "[住所フリガナ] Like '[ア-オ]*'"
'"得意先CD"が100~110(数値型)の得意先だけをレポート"R_得意先マスタ"に印刷します
DoCmd.OpenReport "R_得意先マスタ", , , "[得意先CD] Between 100 And 110"
'レポート"R_得意先マスタ"に、引数として"お得意様"を渡して印刷します
DoCmd.OpenReport "R_得意先マスタ", , , , "お得意様"
Visual Basic で "OpenQuery/クエリを開く" アクションを実行します。
選択クエリやクロス集計クエリを、データシート ビュー、デザイン ビュー、印刷プレビューのいずれかで開きます。アクションクエリも実行できます。
'選択クエリー"Q_得意先マスタ"を編集・追加・削除が可能な状態で開きます
DoCmd.OpenQuery "Q_得意先マスタ"
または、DoCmd.OpenQuery "Q_得意先マスタ", , acEdit
'選択クエリー"Q_得意先マスタ"を追加専用で開きます
DoCmd.OpenQuery "Q_得意先マスタ", , acAdd
'選択クエリー"Q_得意先マスタ"を読み取り専用で開きます
DoCmd.OpenQuery "Q_得意先マスタ", , acReadOnly
'選択クエリー"Q_得意先マスタ"をデザインビューで開きます
DoCmd.OpenQuery "Q_得意先マスタ", , acViewDesign
'選択クエリー"Q_得意先マスタ"を印刷プレビューで開きます
DoCmd.OpenQuery "Q_得意先マスタ", , acViewPreview
結果セットを開かないタイプのアクションクエリも実行できます
'追加クエリー"Q_得意先マスタ_追加"を実行します
DoCmd.OpenQuery "Q_得意先マスタ_追加"
'削除クエリー"Q_得意先マスタ_削除"を実行します
DoCmd.OpenQuery "Q_得意先マスタ_削除"
'テーブル作成クエリー"Q_得意先マスタ_work作成"を実行します
DoCmd.OpenQuery "Q_得意先マスタ_work作成"
'更新クエリー"Q_得意先マスタ_更新"を実行します
DoCmd.OpenQuery "Q_得意先マスタ_更新"
Visual Basic で "SetWarnings/メッセージの設定" アクションを実行します
'アクションクエリー実行時などのシステムメッセージを表示しない
DoCmd.SetWarnings False
'アクションクエリー実行時などのシステムメッセージを表示する
DoCmd.SetWarnings True
Visual Basic で "RunSQL/SQL の実行" アクションを実行します
SQL ステートメントでアクションクエリを実行します。
このクエリをトランザクションに含めるには、True を使います。
トランザクションを使わない場合は、False を使います。
既定値はTrueです。
'トランザクション使用
'テーブル"T_得意先マスタ"の全レコードをSQLで削除します
DoCmd.RunSQL "DELETE * FROM T_得意先マスタ"
または、DoCmd.RunSQL "DELETE * FROM T_得意先マスタ", True
'トランザクション不使用
'テーブル"T_得意先マスタ"の全レコードをSQLで削除します
DoCmd.RunSQL "DELETE * FROM T_得意先マスタ", False
Microsoft Access を終了します。
引数 Options の指定によって、終了の前にデータベース オブジェクトを保存することができます。
'Access を終了します
DoCmd.Quit
Application.Quit も同じ動作をします
イベントによって実行されたときにのみ有効です
Visual Basic でキャンセルできるすべてのイベントには、引数 Cancel が指定されています。
CancelEventの代わりに、この引数にTrueを代入してもイベントをキャンセルできます。
'イベントをキャンセル
DoCmd.CancelEvent
Visual Basic で "ShowAllRecords/全レコードの表示" アクションを実行します。
・フォームのフィルタを解除します
・フォームやサブフォームのレコードの再クエリが行われます
・レコードの変更が反映されます
・追加したレコードが反映されます
'"ApplyFilter"メソッドでの抽出を解除して、すべてのレコードを表示します
DoCmd.ShowAllRecords
Visual Basic で "Requery/再クエリ" アクションを実行します。
・オブジェクト自体のソースを再クエリします。
・指定したコントロールのソースを再クエリし、そのコントロールのデータを更新します。
'カレントフォームのレコードソースを再クエリーします
DoCmd.Requery
※通常はMe.Requery
'コンボボックス"コンボ得意先名"を再クエリーします
DoCmd.Requery "コンボ得意先名"
※通常はMe.コンボ得意先名.Requery
ソフトセル 担当:本田
住所:〒400-0806
山梨県甲府市善光寺3-32-15
電話:055-268-2140
HOME - Access FQA - AccessVBA FQA - 会社概要 - お問い合わせ - プライバシーポリシー - 特定商取引法 - サイトマップ
Copyright© ソフトセル All Rights Reserved.