#698 CreateDatabaseで作ったデータベースのプロパティを設定するには? VBA

「CreateDatabase」メソッドを利用すると、VBAのプログラムを使って新しい空のデータベースファイルを作成することができます。
ただ、Access2019などで実行した場合でも、新規作成されたデータベースは”ウィンドウを重ねて表示する”の設定になっていたり、”Windowsのテーマを使用しない”の設定になっていたりと、タブ付きドキュメントなどがなかった頃の古い形式のデータベースの設定になっています。

そのようなとき、最近のAccessで手作業で新規作成したものと同様の設定にするためのプログラム例です。

※ただし一部の設定項目だけです。また「レイアウトビューを無効」と「データシートビューでテーブルのデザイン変更不可」は個人的な好みの設定です。これらは「CreateDatabase」メソッドでも最近のAccessのものと同じになっていますが、プログラム例として追加してあります。

Dim dbs As Database
Dim prp As Property

'新規データベースファイルを生成
Set dbs = CreateDatabase("C:\テスト\Database2.accdb", dbLangJapanese, dbVersion150)

With dbs
  'タブ付きドキュメント
  Set prp = .CreateProperty("UseMDIMode", dbByte, 0)
  .Properties.Append prp

  'ドキュメントタブを表示する
  Set prp = .CreateProperty("ShowDocumentTabs", dbBoolean, True)
  .Properties.Append prp

  'フォーム上のコントロールにWindowsのテーマを使用
  Set prp = .CreateProperty("Themed Form Controls", dbLong, 1)
  .Properties.Append prp

  '数値フィールドの文字切れをチェックする
  Set prp = .CreateProperty("CheckTruncatedNumFields", dbLong, 1)
  .Properties.Append prp

  'Pictureプロパティの保存形式 - 元の画像形式を保持する
  Set prp = .CreateProperty("Picture Property Storage Format", dbLong, 0)
  .Properties.Append prp

  'Access2010以降と互換性のあるキャッシュ形式を使用する
  Set prp = .CreateProperty("Use Microsoft Access 2007 compatible cache", dbLong, 0)
  .Properties.Append prp


  '****** 以下はお好みで ******
  'レイアウトビューを無効
  Set prp = .CreateProperty("DesignWithData", dbBoolean, False)
  .Properties.Append prp

  'データシートビューでテーブルのデザイン変更不可
  Set prp = .CreateProperty("AllowDatasheetSchema", dbBoolean, False)
  .Properties.Append prp

  .Close

End With


実行例:
  • CreateDatabaseのみの場合のオプション設定


  • 上記のプロパティ設定を行った場合のオプション設定


※参考Tips:
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved