Access VBA ノート(サンプルコード)

Hide Tamura の Access VBA ノート

Access-VBA DoCmdオブジェクト その他のAccessのアクション実行 一覧

モジュール表示
DoCmd.OpenModule "モジュール名", "プロシージャ名"

■AcViewクラス定数
acViewDesign
acViewNormal(既定)
acViewPivotChart
acViewPivotTable
acViewPreview

■AcOpenDataMode
acAdd
acEdit(既定)
acReadOnly


レポートを開く
DoCmd.OpenReport "レポート名", AcViewクラス定数, FilterName, WhereCondition, AcWindowModeクラス定数, OpenArgs

■AcWindowModeクラス定数
acWindowNormal(既定)
acDialog ダイアログ
acHidden 非表示
acIcon 最小化


テーブルを開く
DoCmd.OpenTable "テーブル名", AcViewクラス定数, AcOpenDataModeクラス定数

マクロを実行
DoCmd.RunMacro "マクロ名", RepeatCount, RepeatExpression

SQLを実行
DoCmd.RunSQL "SQLステートメント", UseTransaction

■UseTransaction
True '使用
False '使用しない


条件を指定してデータを抽出
DoCmd.ApplyFilter FilterName, WhereCondition

レコード検索
DoCmd.FindRecord FindWhat, AcFindMatchクラス定数, MatchCase, AcSearchDirectionクラス定数, SearchAsFormatted, AcFindFieldクラス定数, FindFirst

■FindWhat
ワイルドカード使用可 * ? # [ ] [ - ] [! ]

■AcFindMatchクラス定数
acAnywhere '部分一致
acEnire(規定) '全体一致
acStart

■AcSearchDirectionクラス定数
acDown
acSearchAll(規定)
acUp

■AcFindFieldクラス定数
acAll '全てのフィールド
acCurrent(規定) 'カレントフィールドのみ


次のレコード検索
DoCmd.FindNext

再クエリでデータを最新に更新
DoCmd.Requery "コントロール名"

再クエリ+フィルタ解除 全てのレコード再表示
DoCmd.ShowAllRecords

コントロールを移動
DoCmd.GoToControl "コントロール名やフィールド名"

オブジェクトを選択
DoCmd.SelectObject AcObjectTypeクラス定数, "オブジェクト名", InDatabaseWindow

■InDatabaseWindow
True '閉じているオブジェクトを選択
False '開いているオブジェクトを選択


オブジェクトの名前を変更
DoCmd.Rename "新オブジェクト名", AcObjectTypeクラス定数, "現在オブジェクト名"
★開いているオブジェクトの名前は変更できない


オブジェクトを印刷
DoCmd.PrintOut PrintRange, PageFrom, PageTo, PrintQuality, Copies, CollateCopies

オブジェクトを保存
DoCmd.Save AcObjectTypeクラス定数, "保存オブジェクト名"

オブジェクトを閉じる
DoCmd.Close AcObjectTypeクラス定数, "オブジェクト名", AcCloseSaveクラス定数

■AcObjectTypeクラス定数
acDefault(既定)
acDataAccessPage
acDiagram
acForm
acMacro
acModule
acQuery
acReport
acServerView
acStoredProcedure
acTable

■AcCloseSaveクラス定数
acSavePrompt(既定)
acSaveNo
acSaveYes



Accessを終了する
DoCmd.Quit AcQuitOptionsクラス定数

■AcQuitOptionsクラス定数
acQuitPrompt '変更があった時にメッセージ
acQuitSaveAll(既定) '変更を保存
acQuitSaveNone '変更を保存しない


警告メッセージ 表示オンオフ
DoCmd.SetWarnings WarningsOn

■WarningsOn
True 'メッセージオン
False 'メッセージオフ


画面の動きを止めてコードを実行 (ExcelのScreenUpdating)
DoCmd.Echo EchoOn, StatusBarText

■EchoOn
True '動く
False '動きを止める

■StatusBarText
ステータスバーにテキストを表示


以下、アクティブウインドウが対して有効 --------
★SetFocus, SelectObject でアクティブにしておく

ウインドウを最大化
DoCmd.Maximize

ウインドウを最小化
DoCmd.Minimize

ウインドウの位置・サイズの変更
DoCmd.MoveSize Right, Down, Width, Height

■単位
twip 印刷時の1cmが567twip


最大化・最小化したウインドウを元のサイズに戻す
DoCmd.Restore

------------------------------------

Accessメニュー・ツールバーのコマンドを実行
DoCmd.RunCommand acCommandクラス定数

■acCommandクラス定数
以下、ウインドウ関係
acCmdAppMinimize 'Accessウインドウの最小化
acCmdAppRestore 'Accessウインドウを元のサイズに戻す
acCmdDocMinimize 'アクティブオブジェクトのウインドウを最小化
acCmdDocRestore 'アクティブオブジェクトのウインドウを元のサイズに戻す
ほか。ヘルプ参照


 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ



Access-VBA テーブルを削除 DROP TABLE

DROP TABLE テーブル名;

Sub Sample2()
    Dim myDB As Database
    Dim mySQL As String
    
    mySQL = "DROP TABLE tbl勘定科目;"
    
    Set myDB = CurrentDb
    
    myDB.Execute mySQL
    
    myDB.Close
    Set myDB = Nothing

End Sub

 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ



 

Access-VBA テーブルを作成 CREATE TABLE

CREATE TABLE テーブル名(フィールド名1 データ型, フィールド名2 データ型,・・・);

Sub Sample1()
    Dim myDB As Database
    Dim mySQL As String
    
    mySQL = "CREATE TABLE tbl勘定科目(科目コード NUMBER, 科目名 CHAR);"
    
    Set myDB = CurrentDb
    
    myDB.Execute mySQL
    
    myDB.Close
    Set myDB = Nothing

End Sub

 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ






Access-VBA パターンマッチング検索 あいまい検索 (Like)

SELECT * FORM テーブル名 _

WHERE フィールド名 Like 'パターン文字列'

?田 → 山田、中田
?田* → 山田太郎

ワイルドカード
* 任意の文字列
? 任意の一文字
# 任意の一文字の数字
[文字リスト] リスト内の一文字
[!文字リスト] リスト以外の一文字
[文字1-文字2] 文字1~文字2の範囲の一文字
[!文字1-文字2] 文字1~文字2の範囲以外の一文字


 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ



Access-VBA NULL値レコードの抽出

SELECT フィールド1,フィールド2,・・・ FORM テーブル名 _

NULL値のレコード抽出
WHERE フィールド IS NULL; 

NULL値でないレコード抽出
WHERE フィールド IS NOT NULL;


 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ





Access-VBA [SQL] 条件指定でレコード検索 WHERE ~ AND / OR / IN(リスト)

SELECT フィールド1,フィールド2,・・・ FORM テーブル名 _

条件式を満たす
WHERE 条件式;

全ての条件式を満たす
WHERE 条件式1 AND  条件式2 ;

いずれかの条件式を満たす
WHERE 条件式1 OR  条件式2 ;

式(フィールド)の値がリストのいずれかと一致する
WHERE 式 IN (リスト1,リスト2,・・・) ;
式=リスト1 OR 式=リスト2 OR ・・・

式(フィールド)の値がリストのいずれとも一致しない
WHERE 式 NOT IN (リスト1,リスト2,・・・) ;
式<>リスト1 AND 式<>リスト2 AND ・・・

 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ




Access-VBA [SQL] フィールド指定 SELECT ~ FROM ~

フィールドを指定
SELECT フィールド1,フィールド2 FORM テーブル名;

全てのフィールドを指定
SELECT * FORM テーブル名;


 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ




Access-VBA [ADO] レコード抽出(Filter)

    RS.Open "tbl勘定科目", CN
    RS.Filter = "勘定科目='1112' or 勘定科目 = '1113'"
    Do Until RS.EOF
        Debug.Print RS("勘定科目"), RS("科目番号")
        RS.MoveNext
    Loop
    
----------------------------------------------------------

カレントレコードは抽出されたレコードの先頭レコード

Filter解除は、RS.Filter=""

 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ



 

Access-VBA 正規化

[ 正規化 ] データの重複がない単純化されたテーブルに分割

主キー以外のフィールドによって決められるフィールドは別のテーブルに分割
他のテーブルの主キーとなるフィールドは外部キー 

1つのレコードに繰り返される構造は別のテーブルに分割
主キーのフィールドと、繰り返されるフィールドを組み合わせて連結主キーとする

計算によって求められるフィールドはテーブルに含めない

サイズが小さくなる テーブルの目的の明確化 データ管理が容易


 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ



Access-VBA [ADO] レコード並べ替え(Sort)

    RS.CursorLocation = adUseClient
    
    With RS
        .Source = "tbl補助科目"
        .ActiveConnection = CN
        .Open
    End With

    RS.Sort = "科目コード ASC, 補助科目コード DESC"
    Do Until RS.EOF
        Debug.Print RS("科目コード"), RS("補助科目コード"), RS("補助科目名")
        RS.MoveNext
    Loop

----------------------------------------------------------
 
昇順:ASC  降順:DESC

Sortするには、CursorLocationに、adUseClient の設定が必要

CursorLocation プロパティ
adUseServer (既定)サーバー側のカーソル使用
adUseClient クライアント側のカーソル使用

Openされたオブジェクトには無効なので、RSのオープン前に設定

Sort解除は、RS.Sort=""

 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ


 


記事検索
Access VBA 担当 Hide Tamura
■VBA Expert
VBA Expert Standard Crown
ExcelVBA Standard
Access VBA Standard
Excel2002 VBA Standard
■MICROSOFT OFFICE USER SPECIALIST
Microsoft Excel version2002 Expert
Microsoft Excel version2002


最新記事
Excelで作る経営計画
Excelで利益計画を立てましょう!会社にいくらの利益が必要で、その為の売上高は?

Excelで作る経営計画
Excel 関数 ノート
Excel関数を中心に、Excelの便利機能や、意外としらない使い方など書いていきます。

Excel 関数 ノート
Excel VBAノート
Hide Tamura の個人的なVBAノートです。

頻繁に使うVBAコードなどを記録しコピペして使う為に作りました。お役に立てるようでしたら、お使いください。

アクセスカウンター

    • ライブドアブログ