MS AccessでDAOトランザクション

Dim workspace As DAO.workspace
Set workspace = DBEngine.Workspaces(0)
Dim database As DAO.database
Set database = CurrentDb

workspace.BeginTrans

database.Execute "UPDATE test SET val = 'test';"

workspace.CommitTrans
'workspace.Rollback

MS AccessレポートのTextBoxの文字サイズを幅で自動調整する関数

Public Static Sub adjustFontSize(ByRef report As Report, ByRef textBox As TextBox)

Dim text As String
text = textBox.text

Report.FontSize = textBox.FontSize

Dim tempWidth As Integer
tempWidth = Report.TextWidth(text)

Do While textBox.Width < tempWidth Report.FontSize = Report.FontSize - 1 tempWidth = Report.TextWidth(text) Loop textBox.FontSize = Report.FontSize End Sub [/sourcecode]

MS Accessのリンクテーブル更新

Dim database As database
Set database = CurrentDb

Dim tableName As String
tableName = "test_table"

Dim path As String
path = "C:\test.mdb"

Dim tableDef As tableDef
Set tableDef = database.TableDefs(tableName)

tableDef.Connect = ";DATABASE=" & path
tableDef.RefreshLink

Set tableDef = Nothing
Set database = Nothing

VBからDAOでMDBにアクセスする

参照設定で「Microsoft Office X.X Access database engine Object Library」を追加
DAOはRecordset.Editでレコードロックされ、Recordset.Updateでロック解除される。DAOはロック関連がとても使いやすくて良い。Accessで開発をする場合はADOではなくDAOを使っておいた方が後々助かる事が多いな。

Dim database As DAO.database
Dim recordset As DAO.recordset
Dim sql As String

'Access外部からの場合
'Dim workspace As DAO.workspace
'Set workspace = DBEngine.Workspaces(0)
'Set database = workspace.OpenDatabase("C:\test.mdb")

'Access内部からの場合
Set database = CurrentDb

sql = "SELECT * FROM test;"
Set recordset = database.OpenRecordset(sql, dbOpenDynaset)

recordset.Edit

recordset.Fields("column").Value = "値"
recordset.Update

recordset.Close
database.Close
'workspace.Close

Set recordset = Nothing
Set database = Nothing
'Set workspace = Nothing

VBからExcelを操作する

Dim excel As Object
Set excel = CreateObject("Excel.Application")

excel.Application.Visible = True
excel.Application.UserControl = False

excel.Workbooks.Open "C:\test.xls"

Dim i As Integer
For i = 1 To excel.Sheets.Count

    excel.Sheets(i).Cells(1, 1).Value = "Test"

Next i

'excel.Run "Macro"

excel.ActiveWorkBook.Close False
excel.Quit

Set excel = Nothing

MS AccessのDoCmd.RunCommand一覧

acCmdAboutMicrosoftAccess バージョン情報
acCmdAddWatch ウォッチ式の追加
acCmdAdvancedFilterSort フィルタ/並べ替えの編集
acCmdAlignBottom 下に配置
acCmdAlignLeft 左に配置
acCmdAlignRight 右に配置
acCmdAlignToGrid グリッドに配置
acCmdAlignTop 上に配置
acCmdAlignToShortest サイズ変更(低いコントロールに)
acCmdAlignToTallest サイズ変更(高いコントロールに)
acCmdAnalyzePerformance パフォーマンスの最適化
acCmdAnalyzeTable テーブルの正規化
acCmdAnswerWizard アンサーウィザード
acCmdApplyDefault コントロールの既定値を適用
acCmdApplyFilterSort フィルタ/並べ替えの実行
acCmdAppMaximize 最大化(アプリケーション)
acCmdAppMinimize 最小化(アプリケーション)
acCmdAppMove 移動(アプリケーション)
acCmdAppRestore 元のサイズに戻す(アプリケーション)
acCmdAppSize サイズ変更(アプリケーション)
acCmdArrangeIconsAuto アイコンの自動整列
acCmdAutoCorrect オートコレクト
acCmdAutoDial オートダイアル
acCmdAutoFormat オートフォーマット
acCmdBookmarksClearAll すべてのブックマークのクリア
acCmdBookmarksNext 次のブックマーク
acCmdBookmarksPrevious 前のブックマーク
acCmdBookmarksToggle ブックマーク
acCmdBringToFront 最前面へ移動
acCmdCallStack 呼び出し履歴
acCmdChangeToCheckBox コントロールの種類の変更(チェックボックス)
acCmdChangeToComboBox コントロールの種類の変更(コンボボックス)
acCmdChangeToImage コントロールの種類の変更(イメージ)
acCmdChangeToLabel コントロールの種類の変更(ラベル)
acCmdChangeToListBox コントロールの種類の変更(リストボックス)
acCmdChangeToOptionButton コントロールの種類の変更(オプションボタン)
acCmdChangeToTextBox コントロールの種類の変更(テキストボックス)
acCmdChangeToToggleButton コントロールの種類の変更(トグルボタン)
acCmdClearAll レイアウトのクリア
acCmdClearAllBreakpoints すべてのブレークポイントの解除
acCmdClearGrid グリッドのクリア
acCmdClearHyperlink ハイパーリンクをクリア
acCmdClose 閉じる
acCmdCloseWindow ウィンドウを閉じる
acCmdColumnWidth 列の幅
acCmdCompactDatabase データベースの最適化
acCmdCompileAllModules すべてのモジュールのコンパイル
acCmdCompileAndSaveAllModules すべてのモジュールをコンパイルして保存
acCmdCompileLoadedModules ロード済みモジュールのコンパイル
acCmdCompleteWord 入力候補
acCmdConnection データベースに接続
acCmdControlWizardsToggle コントロールウィザード
acCmdConvertDatabase データベースの変換
acCmdConvertMacrosToVisualBasic マクロをVisualBasicに変換
acCmdCopy コピー
acCmdCopyHyperlink ハイパーリンクのコピー
acCmdCreateMenuFromMacro マクロからメニューの作成
acCmdCreateRelationship リレーションシップの作成
acCmdCreateReplica レプリカの作成
acCmdCreateShortcut ショートカットの作成
acCmdCreateShortcutMenuFromMacro マクロからショートカットメニューの作成
acCmdCreateToolbarFromMacro マクロからツールバーの作成
acCmdCut 切り取り
acCmdDataAccessPageBrowse データアクセスページをブラウズ
acCmdDatabaseProperties データベースプロパティ
acCmdDataEntry データ入力
acCmdDatasheetView データシートビュー
acCmdDateAndTime 日付と時刻
acCmdDebugWindow デバッグウィンドウ
acCmdDelete 削除
acCmdDeletePage タブコントロールのページ削除
acCmdDeleteQueryColumn クエリ列の削除
acCmdDeleteRecord レコードの削除
acCmdDeleteRows 行の削除
acCmdDeleteTab タブの削除
acCmdDeleteTableColumn テーブル列の削除
acCmdDeleteWatch ウォッチ式の削除
acCmdDemote レベル下げ
acCmdDesignView デザインビュー
acCmdDiagramAddRelatedTables ダイアグラム-リレーションテーブルを追加
acCmdDiagramAutosizeSelectedTables ダイアグラム-選択したテーブルのサイズを自動設定
acCmdDiagramDeleteRelationship ダイアグラム-リレーションシップの削除
acCmdDiagramLayoutDiagram ダイアグラム-レイアウトダイアグラム
acCmdDiagramLayoutSelection ダイアグラム-レイアウトの選択
acCmdDiagramModifyUserDefinedView ダイアグラム-ユーザー定義ビューを変更
acCmdDiagramNewLabel ダイアグラム-新しいラベルの作成
acCmdDiagramNewTable ダイアグラム-新しいテーブルの作成
acCmdDiagramRecalculatePageBreaks ダイアグラム-改ページを再計算
acCmdDiagramShowRelationshipLabels ダイアグラム-リレーションシップラベルを表示
acCmdDiagramViewPageBreaks ダイアグラム-改ページの表示
acCmdDocMaximize 最大化
acCmdDocMinimize 最小化
acCmdDocMove 移動
acCmdDocRestore 元のサイズに戻す
acCmdDocSize サイズ変更
acCmdDocumenter データベース構造の解析
acCmdDuplicate 複製
acCmdEditHyperlink ハイパーリンクの編集
acCmdEditingAllowed 編集の許可
acCmdEditRelationship リレーションシップの編集
acCmdEditTriggers トリガの編集
acCmdEditWatch ウォッチ式の編集
acCmdEncryptDecryptDatabase データベースの暗号化/解読
acCmdEnd 終了
acCmdExit アプリケーションの終了
acCmdFavoritesAddTo お気に入りに追加
acCmdFavoritesOpen お気に入りを開く
acCmdFieldList フィールドリスト
acCmdFilterByForm フォームフィルタ
acCmdFilterBySelection 選択フィルタ
acCmdFilterExcludingSelection 非選択クエリ
acCmdFind 検索
acCmdFindNext 次を検索
acCmdFindNextWordUnderCursor カーソル位置の単語の検索(下へ)
acCmdFindPrevious 前を検索
acCmdFindPrevWordUnderCursor カーソル位置の単語の検索(上へ)
acCmdFitToWindow ウィンドウに合わせる
acCmdFont フォント
acCmdFormatCells セルの書式
acCmdFormHdrFtr フォームヘッダー/フッター
acCmdFormView フォームビュー
acCmdFreezeColumn 列の固定
acCmdGoBack 戻る
acCmdGoContinue 開始/継続
acCmdGoForward 進む
acCmdHideColumns 列を表示しない
acCmdHidePane ペインを非表示にする
acCmdHideTable テーブルを表示しない
acCmdHorizontalSpacingDecrease 左右の間隔を狭くする
acCmdHorizontalSpacingInccrease 左右の間隔を広くする
acCmdHorizontalSpacingMakeEqual 左右の間隔を均等にする
acCmdHyperlinkDisplayText ハイパーリンク表示テキスト
acCmdImport インポート
acCmdIndent インデント
acCmdIndexes インデックス
acCmdInsertActiveXControl ActiveXコントロールの挿入
acCmdInsertChart グラフの挿入
acCmdInsertFile ファイルの挿入
acCmdInsertFileIntoModule ファイルからモジュールの挿入
acCmdInsertHyperlink ハイパーリンクの挿入
acCmdInsertLookupColumn ルックアップ列の挿入
acCmdInsertLookupField ルックアップフィールドの挿入
acCmdInsertObject オブジェクトの挿入
acCmdInsertPage タブコントロールのページ挿入
acCmdInsertPicture 図の挿入
acCmdInsertProcedure プロシージャの挿入
acCmdInsertQueryColumn クエリ列の挿入
acCmdInsertRows 行の挿入
acCmdInsertTableColumn テーブル列の挿入
acCmdInvokeBuilder ビルダの起動
acCmdJoinProperties 結合プロパティ
acCmdLastPosition 元の位置へ移動
acCmdLayoutPreview レイアウトプレビュー
acCmdLineUpIcons 等間隔に整列
acCmdLinkTables テーブルのリンク
acCmdListConstants 定数の一覧
acCmdLoadFromQuery クエリから読み込み
acCmdMacroConditions マクロ条件の表示
acCmdMacroNames マクロ名の表示
acCmdMakeMDEFile MDEファイルの作成
acCmdMicrosoftAccessHelpTopics トピックの検索
acCmdMicrosoftOnTheWeb MicrosoftWebページ
acCmdMicrosoftScriptEditor MicrosoftScriptEditor
acCmdMoreWindows ウィンドウの選択
acCmdNewDatabase データベースの新規作成
acCmdNewObjectAutoForm 新しいオートフォームの作成
acCmdNewObjectAutoReport 新しいオートレポートの作成
acCmdNewObjectClassModule 新しいクラスモジュールの作成
acCmdNewObjectDataAccessPage 新しいデータアクセスページの作成
acCmdNewObjectDiagram 新しいダイアグラムの作成
acCmdNewObjectForm 新しいフォームの作成
acCmdNewObjectMacro 新しいマクロの作成
acCmdNewObjectModule 新しい標準モジュールの作成
acCmdNewObjectQuery 新しいクエリの作成
acCmdNewObjectReport 新しいレポートの作成
acCmdNewObjectStoredProcedure 新しいストアドプロシージャの作成
acCmdNewObjectTable 新しいテーブルの作成
acCmdNewObjectView 新しいビューの作成
acCmdObjBrwFindWholeWordOnly オブジェクトブラウザ完全に一致する単語のみ検索
acCmdObjBrwGroupMembers オブジェクトブラウザグループメンバ
acCmdObjBrwHelp オブジェクトブラウザヘルプ
acCmdObjBrwShowHiddenMembers オブジェクトブラウザ隠しメンバの表示
acCmdObjBrwViewDefinition オブジェクトブラウザ定義の表示
acCmdObjectBrowser オブジェクトブラウザ
acCmdOLEDDELinks リンクの設定
acCmdOLEObjectConvert オブジェクトの変換
acCmdOLEObjectDefaultVerb OLEオブジェクトの動作
acCmdOpenDatabase データベースを開く
acCmdOpenHyperlink ハイパーリンクを開く
acCmdOpenNewHyperlink 新しいハイパーリンクを開く
acCmdOpenSearchPage 検索ページを開く
acCmdOpenStartPage スタートページを開く
acCmdOpenTable テーブルを開く
acCmdOpenURL URLを開く
acCmdOptions オプション
acCmdOutdent インデントを戻す
acCmdOutputToExcel Excelに出力
acCmdOutputToRTF RTFとして出力
acCmdOutputToText テキストとして出力
acCmdPageHdrFtr ページヘッダー/フッター
acCmdPageNumber ページ番号
acCmdPageSetup ページ設定
acCmdParameterInfo パラメータヒント
acCmdPaste 貼り付け
acCmdPasteAppend 追加貼り付け
acCmdPasteSpecial 形式を選択して貼り付け
acCmdPreviewEightPages 8ページ表示
acCmdPreviewFourPages 4ページ表示
acCmdPreviewOnePage 1ページ表示
acCmdPreviewTwelvePages 12ページ表示
acCmdPreviewTwoPages 2ページ表示
acCmdPrimaryKey 主キー
acCmdPrint 印刷
acCmdPrintPreview 印刷プレビュー
acCmdProcedureDefinition プロシージャの定義
acCmdPromote レベル上げ
acCmdProperties プロパティ
acCmdPublish Webページの作成
acCmdQueryAddToOutput クエリ-出力に追加
acCmdQueryGroupBy クエリ-グループ化
acCmdQueryParameters クエリパラメータ
acCmdQueryTotals 集計行の表示
acCmdQueryTypeAppend 追加クエリの作成
acCmdQueryTypeCrosstab クロス集計クエリの作成
acCmdQueryTypeDelete 削除クエリの作成
acCmdQueryTypeMakeTable テーブル作成クエリの作成
acCmdQueryTypeSelect 選択クエリの作成
acCmdQueryTypeSQLDataDefinition SQLデータ定義クエリの作成
acCmdQueryTypeSQLPassThrough SQLパススルークエリの作成
acCmdQueryTypeSQLUnion SQLユニオンクエリの作成
acCmdQueryTypeUpdate 更新クエリの作成
acCmdQuickInfo クイックヒント
acCmdQuickPrint 簡易印刷
acCmdQuickWatch クイックウォッチ
acCmdRecordsGoToFirst 先頭のレコードへ
acCmdRecordsGoToLast 最後のレコードへ
acCmdRecordsGoToNew 新しいレコードへ
acCmdRecordsGoToNext 次のレコードへ
acCmdRecordsGoToPrevious 前のレコードへ
acCmdRecoverDesignMaster デザインマスターの修復
acCmdRedo 繰り返し
acCmdReferences 参照設定
acCmdRefresh 更新
acCmdRefreshPage 最新の情報に更新
acCmdRegisterActiveXControls ActiveXコントロールの登録
acCmdRelationships リレーションシップ
acCmdRemove テーブルを削除
acCmdRemoveFilterSort フィルタ/並べ替えの解除
acCmdRemoveTable テーブルの削除
acCmdRename 名前の変更
acCmdRenameColumn 列名の変更
acCmdRepairDatabase データベースの修復
acCmdReplace 置換
acCmdReportHdrFtr レポートヘッダー/フッター
acCmdReset リセット
acCmdResolveConflicts 競合の解決
acCmdRowHeight 行の高さ
acCmdRun 実行
acCmdRunMacro マクロの実行
acCmdRunOpenMacro 開いているマクロの実行
acCmdSave 上書き保存
acCmdSaveAllModules すべてのモジュールの保存
acCmdSaveAs 名前を付けて保存
acCmdSaveAsQuery クエリとして保存
acCmdSaveAsReport レポートとして保存
acCmdSaveLayout レイアウトの保存
acCmdSaveModuleAsText モジュールをテキストとして保存
acCmdSaveRecord レコードの保存
acCmdSelectAll すべて選択
acCmdSelectAllRecords すべてのレコードの選択
acCmdSelectDataAccessPage データアクセスページの選択
acCmdSelectForm フォーム全体の選択
acCmdSelectRecord レコードの選択
acCmdSelectReport レポート全体の選択
acCmdSend 送信
acCmdSendToBack 最背面へ移動
acCmdSetControlDefaults コントロールの既定値として設定
acCmdSetDatabasePassword データベースパスワードの設定
acCmdSetNextStatement 次のステートメントの設定
acCmdShowAllRelationships すべてのリレーションシップの表示
acCmdShowDirectRelationsh 直接リレーションシップの表示
acCmdShowMembers プロパティ/メソッドの一覧
acCmdShowNextStatement 次のステートメントの表示
acCmdShowOnlyWebToolbar Webツールバーのみを表示
acCmdShowTable テーブルの表示
acCmdSingleStep シングルステップ
acCmdSizeToFit サイズ変更(自動調整)
acCmdSizeToFitForm サイズ変更(フォームに)
acCmdSizeToGrid サイズ変更(グリッドに)
acCmdSizeToNarrowest サイズ変更(狭いコントロールに)
acCmdSizeToWidest サイズ変更(広いコントロールに)
acCmdSnapToGrid グリッドに合わせる
acCmdSortAscending 昇順で並べ替え
acCmdSortByCreated アイコンの整列(作成順)
acCmdSortByModified アイコンの整列(更新順)
acCmdSortByName アイコンの整列(名前順)
acCmdSortByType アイコンの整列(種類順)
acCmdSortDescending 降順で並べ替え
acCmdSortingAndGrouping 並べ替え/グループ化
acCmdSpelling スペルチェック
acCmdSQLView SQLビュー
acCmdStartupProperties 起動時の設定
acCmdStepInto ステップイン
acCmdStepOut ステップアウト
acCmdStepOver ステップオーバー
acCmdStepToCursor カーソル行の前まで実行
acCmdStopLoadingPage ページジャンプの中止
acCmdSubformDatasheet サブフォームデータシート
acCmdSynchronizeNow 同期
acCmdTabControlPageOrder タブコントロールのページ順序
acCmdTableNames テーブル名行の表示
acCmdTabOrder タブオーダー
acCmdTestValidationRules 入力規則のテスト
acCmdTileHorizontally 上下に並べて表示
acCmdTileVertically 左右に並べて表示
acCmdToggleBreakpoint ブレークポイントの設定/解除
acCmdToggleFilter フィルタの実行/解除
acCmdToolbarControlProperties ツールバーコントロールプロパティ
acCmdToolbarsCustomize ツールバーユーザー設定
acCmdTransparentBackground 背景透明
acCmdTransparentBorder 境界線透明
acCmdUndo 元に戻す
acCmdUnfreezeAllColumns 列固定の解除
acCmdUnhideColumns 列の再表示
acCmdUserAndGroupAccounts ユーザー/グループのアカウント
acCmdUserAndGroupPermissions ユーザー/グループの権限
acCmdUserLevelSecurityWizard セキュリティウィザード
acCmdVerticalSpacingDecrease 上下の間隔を狭くする
acCmdVerticalSpacingIncrecrease 上下の間隔を広くする
acCmdVerticalSpacingMakeEqual 上下の間隔を均等にする
acCmdViewCode コードの表示
acCmdViewDataAccessPages データアクセスページの表示
acCmdViewDetails 詳細表示
acCmdViewDiagrams ダイアグラムの表示
acCmdViewFieldList フィールドリストの参照
acCmdViewForms フォームタブの表示
acCmdViewGrid グリッドの表示
acCmdViewLargeIcons 大きいアイコン
acCmdViewList 一覧表示
acCmdViewMacros マクロタブの表示
acCmdViewModules モジュールタブの表示
acCmdViewQueries クエリタブの表示
acCmdViewReports レポートタブの表示
acCmdViewRuler ルーラーの表示
acCmdViewShowPaneDiagram ビュー-ダイアグラムペインの表示
acCmdViewShowPaneGrid ビュー-グリッドペインの表示
acCmdViewShowPaneSQL ビュー-SQLペインの表示
acCmdViewSmallIcons 小さいアイコン
acCmdViewStoredProcedures ストアドプロシージャの表示
acCmdViewTableColumnNames テーブル列名の表示
acCmdViewTableColumnProperties テーブル列のプロパティの表示
acCmdViewTableKeys テーブルの主キーの表示
acCmdViewTableNameOnly テーブル名のみ表示
acCmdViewTables テーブルタブの表示
acCmdViewTableUserView ビュー-テーブルユーザービュー
acCmdViewToolbox ツールボックスの表示
acCmdViewVerifySQL ビュー-SQLの照合
acCmdViewViews ビューの表示
acCmdWindowArrangeIcons ウィンドウアイコンの整列
acCmdWindowCascade ウィンドウを重ねて表示
acCmdWindowHide ウィンドウを表示しない
acCmdWindowSplit ウィンドウの分割
acCmdWindowUnhide ウィンドウの再表示
acCmdWordMailMerge Wordに差し込み
acCmdZoom10 ズーム(10%)
acCmdZoom100 ズーム(100%)
acCmdZoom150 ズーム(150%)
acCmdZoom200 ズーム(200%)
acCmdZoom25 ズーム(25%)
acCmdZoom50 ズーム(50%)
acCmdZoom75 ズーム(75%)
acCmdZoomBox ズームボックス
acCmdZoomSelection 選択範囲をズーム

MS Accessのshiftキー押しながら起動を無効に

'Shiftキー有効無効を切り替える関数
Function ChangeProperty(strPropName As String, propType, propValue) As Integer
    Dim dbs As Database, prp As Property
    Const conPropNotFoundError = 3270
    Set dbs = CurrentDb
    dbs.Properties(propName) = propValue
    ChangeProperty = True
End Function

'Shiftキーを有効にする場合
ChangeProperty "AllowBypassKey", dbBoolean, True

'Shiftキーを無効にする場合
ChangeProperty "AllowBypassKey", dbBoolean, False