24 フォーム系 - フォームの追加/削除/更新の許可の設定値を収集する

カレントデータベース内にあるフォーム名の一覧とともに、それぞれのフォームの「追加の許可」、「削除の許可」、「更新の許可」の3つのプロパティの設定値を収集します。
  1. まず「Database」オブジェクトの変数である「dbs」に”カレントデータベース”をセットします。

  2. 次に「Container」オブジェクトの変数である「ctn」に、カレントデータベースの「Containers」コレクション内にある”フォーム(Forms)”をセットします。これによってそのオブジェクト変数に”データベース内のフォームのグループ全体への参照”がセットされます。

  3. Container内にあるすべてのフォームのコレクションである「Documents」の中から、For Each〜Nextステートメントでひとつずつフォーム情報を取り出し、「Document」オブジェクトの変数「doc」にセットしていきます。

  4. 取り出されたひとつのフォーム情報のうち、フォーム名である「Name」プロパティの値を、ここではそれを何度か使用するため、いったん変数「strFormName」にセットします。

  5. フォーム内のオブジェクトを参照するので、そのフォームを”デザインビュー”(引数に「acDesign」を指定)で開きます。

  6. まずフォーム名をイミディエイトウィンドウに出力します。

  7. さらに、そのフォームの編集許可に関する3つのプロパティ値をイミディエイトウィンドウに出力します。

    その3つのプロパティとVBAでの英字のプロパティ名は下記の通りです。
    • 追加の許可 → AllowAdditions
    • 削除の許可 → AllowDeletions
    • 更新の許可 → AllowEdits

    ※これらのプロパティ値は「True/False」で返されます。プロパティシートと同じ表記にするため、ここでは「IIf」関数を使って、Trueなら”はい”、Falseなら”いいえ”という文字を出力させています。

  8. そのフォームを閉じます。
    ここではデータ収集のみでデザイン変更はありませんので、引数に「acSaveNo」を指定することで意図的に変更を保存せずに閉じます。

Sub Sample_3_06()
'フォームの追加/削除/更新の許可の設定値を収集する

  Dim dbs As Database
  Dim ctn As Container
  Dim doc As Document
  Dim strFormName As String

  Set dbs = CurrentDb
  Set ctn = dbs.Containers!Forms
  For Each doc In ctn.Documents
    strFormName = doc.Name
    DoCmd.OpenForm strFormName, acDesign
    Debug.Print "■" & strFormName
    With Forms(strFormName)
      Debug.Print " 追加の許可:" & IIf(.AllowAdditions, "はい", "いいえ")
      Debug.Print " 削除の許可:" & IIf(.AllowDeletions, "はい", "いいえ")
      Debug.Print " 更新の許可:" & IIf(.AllowEdits, "はい", "いいえ")
      Debug.Print "------------------"
    End With
    DoCmd.Close acForm, strFormName, acSaveNo
  Next doc

End Sub

実行例:


| Index | Prev | Next |



Copyright © T'sWare All rights reserved