Database.CreateProperty メソッド (DAO)

適用先: Access 2013、Office 2013

新しいユーザー定義の Property オブジェクトを作成します (Microsoft Access ワークスペースのみ)。 .

構文

式 。CreateProperty(Name, Type, Value, DDL)

式Database オブジェクトを表す変数です。

パラメーター

名前

必須かどうか

データ型

説明

名前

省略可能

バリアント型 (Variant)

新しい Property オブジェクトの一意の名前を表す文字列型 ( String ) の値。 有効な Property 名の詳細については、 Name プロパティを参照してください。

Type

省略可能

バリアント型 (Variant)

新しい Property オブジェクトのデータ型を定義する定数。 有効なデータ型については、 Type プロパティを参照してください。

Value

省略可能

バリアント型 (Variant)

初期プロパティ値を格納しているバリアント型 ( Variant ) の値。 詳細については、 Value プロパティを参照してください。

DDL

省略可能

バリアント型 (Variant)

Property が DDL オブジェクトであるかどうかを示す、サブタイプがブール型 (Boolean) であるバリアント型 (Variant) の値。 既定は False です。 DDL が True の場合、ユーザーは dbSecWriteDef アクセス許可を持っていない限り、この Property オブジェクトを変更または削除できません。

戻り値

プロパティ

注釈

ユーザー定義の Property オブジェクトを作成できるのは、持続的なオブジェクトの Properties コレクション内だけです。

CreateProperty を使用するときに 1 つ以上の省略可能な引数を省略した場合は、新しいオブジェクトをコレクションに追加する前に、適切な代入ステートメントを使用して、対応するプロパティを設定またはリセットできます。 オブジェクトをコレクションに追加した後は、一部のプロパティ設定を変更できなくなります。 詳細については、 Name、 Type、および Value の各プロパティのトピックを参照してください。

name が既にコレクションのメンバーであるオブジェクトを参照している場合、 Append メソッドを使用すると実行時エラーが発生します。

ユーザー定義の Property オブジェクトをコレクションから削除するには、 Properties コレクションの Delete メソッドを使用します。 組み込みのプロパティは削除できません。

注:

DDL 引数を省略すると、既定では False (DDL 以外) になります。 対応する DDL プロパティは公開されていないので、DDL から DDL 以外に変更する Property オブジェクトを削除し、再作成する必要があります。

例

この例では、ユーザー定義のプロパティに値を設定します。 プロパティが存在しない場合は、 CreateProperty メソッドを使用して作成してから値を設定します。 このプロシージャを実行するには、SetProperty プロシージャが必要です。

    Sub CreatePropertyX() 
     
       Dim dbsNorthwind As Database 
       Dim prpLoop As Property 
     
       Set dbsNorthwind = OpenDatabase("Northwind.mdb") 
     
       ' Set the Archive property to True. 
       SetProperty dbsNorthwind, "Archive", True 
        
       With dbsNorthwind 
          Debug.Print "Properties of " & .Name 
           
          ' Enumerate Properties collection of the Northwind  
          ' database. 
          For Each prpLoop In .Properties 
             If prpLoop <> "" Then Debug.Print "  " & _ 
                prpLoop.Name & " = " & prpLoop 
          Next prpLoop 
     
          ' Delete the new property since this is a  
          ' demonstration. 
          .Properties.Delete "Archive" 
     
          .Close 
       End With 
     
    End Sub 
     
    Sub SetProperty(dbsTemp As Database, strName As String, _ 
       booTemp As Boolean) 
     
       Dim prpNew As Property 
       Dim errLoop As Error 
     
       ' Attempt to set the specified property. 
       On Error GoTo Err_Property 
       dbsTemp.Properties("strName") = booTemp 
       On Error GoTo 0 
     
       Exit Sub 
     
    Err_Property: 
     
       ' Error 3270 means that the property was not found. 
       If DBEngine.Errors(0).Number = 3270 Then 
          ' Create property, set its value, and append it to the  
          ' Properties collection. 
          Set prpNew = dbsTemp.CreateProperty(strName, _ 
             dbBoolean, booTemp) 
          dbsTemp.Properties.Append prpNew 
          Resume Next 
       Else 
          ' If different error has occurred, display message. 
          For Each errLoop In DBEngine.Errors 
             MsgBox "Error number: " & errLoop.Number & vbCr & _ 
                errLoop.Description 
          Next errLoop 
          End 
       End If 
     
    End Sub