次の方法で共有


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 つ以上の省略可能な引数を省略した場合は、新しいオブジェクトをコレクションに追加する前に、適切な代入ステートメントを使用して、対応するプロパティを設定またはリセットできます。 オブジェクトをコレクションに追加した後は、一部のプロパティ設定を変更できなくなります。 詳細については、 NameType、および 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