Name Property

Applies To

Connection object, Container object, Database object, Document object, Dynamic-Type Recordset object, Dynaset-Type Recordset object, Field object, Forward-Only–Type Recordset object, Group object, Index object, Parameter object, Property object, QueryDef object, Recordset object, Relation object, Snapshot-Type Recordset object, Table-Type Recordset object, TableDef object, User object, Workspace object.

Description

Sets or returns a user-defined name for a DAO object. For an object not appended to a collection, this property is read/write.

Settings and Return Values

The setting or return value is a String that specifies a name. The name must start with a letter. The maximum number of characters depends on the type of object Name applies to, as shown in Remarks. It can include numbers and underscore characters ( _ but can't include punctuation or spaces.

Remarks

TableDef, QueryDef, Field, Index, User, and Group objects can't share the same name with any object in the same collection.

The Name property of a Recordset object opened by using an SQL statement is the first 256 characters of the SQL statement.

You can use an object's Name property with the Visual Basic for Applications Dim statement in code to create other instances of the object.

Note For many of the DAO objects, the Name property reflects the name as known to the Database object, as in the name of a TableDef, Field, or QueryDef object. There is no direct link between the name of the DAO object and the object variable used to reference it.

The read/write usage of the Name property depends on the type of object it applies to, and whether or not the object has been appended to a collection. In an ODBCDirect workspace, the Name property of an appended object is always read-only. The following table indicates whether the Name property in a Microsoft Jet workspace is read/write or read-only for an object that is appended to a collection (unless otherwise noted), and also indicates its maximum length in cases where it is read/write.

Object

Usage

Maximum length

Container

Read-only

Connection

Read-only

Database

Read-only

Document

Read-only

Field

Unappended

Read/write

64

Appended to Index

Read-only

Appended to QueryDef

Read-only

Appended to Recordset

Read-only

Appended to TableDef (native)

Read/write

64

Appended to TableDef (linked)

Read-only

Appended to Relation

Read-only

Group

Unappended

Read/write

20

Appended

Read-only

Index

Unappended

Read/write

64

Appended

Read-only

Parameter

Read-only

Property

Unappended

Read/write

64

Appended

Read-only

Built-in

Read-only

QueryDef

Unappended

Read/write

64

Temporary

Read-only

Appended

Read/write

64

Recordset

Read-only

Relation

Unappended

Read/write

64

Appended

Read-only


(continued)

TableDef

Read/write

64

User

Unappended

Read/write

20

Appended

Read-only

Workspace

Unappended

Read/write

20

Appended

Read-only


See Also

CreateDatabase method, CreateField method, CreateIndex method, CreateQueryDef method.

Example

This example uses the Name property to give a name to a newly created object, to show what objects are in a given collection, and to delete an object from a collection.

Sub NameX()

    Dim dbsNorthwind As Database
    Dim qdfNew As QueryDef
    Dim qdfLoop As QueryDef

    Set dbsNorthwind = OpenDatabase("Northwind.mdb")

    With dbsNorthwind
        ' Create a new permanent QueryDef object and append it
        ' to the QueryDefs collection.
        Set qdfNew = .CreateQueryDef()
        qdfNew.Name = "NewQueryDef"
        qdfNew.SQL = "SELECT * FROM Employees"
        .QueryDefs.Append qdfNew

        ' Enumerate the QueryDefs collection to display the
        ' names of the QueryDef objects.
        Debug.Print "Names of queries in " & .Name

        For Each qdfLoop In .QueryDefs
            Debug.Print "    " & qdfLoop.Name
        Next qdfLoop

        ' Delete new QueryDef object because this is a
        ' demonstration.
        .QueryDefs.Delete qdfNew.Name

        .Close
    End With

End Sub
Example (Microsoft Access)

The following example creates two new TableDef objects and names them. The name of the first TableDef object is included as an argument to the CreateTableDef method. The name of the second TableDef object is set by using the Name property, after the TableDef object has been created.

Note that you must define fields in the table before the TableDef object can be appended to the TableDefs collection.

Sub NameNewTables()
    Dim dbs As Database
    Dim tdfDefinitions As TableDef, tdfSynonyms As TableDef

    ' Return reference to current database.
    Set dbs = CurrentDb
    ' Create new TableDef object.
    Set tdfDefinitions = dbs.CreateTableDef("Definitions")
    ' Create second TableDef object.
    Set tdfSynonyms = dbs.CreateTableDef("")
    ' Set Name property for second TableDef object.
    tdfSynonyms.Name = "Synonyms"
    .                                        ' Create fields.
    .
    .
    dbs.TableDefs.Append tdfDefinitions
    dbs.TableDefs.Append tdfSynonyms
    Set dbs = Nothing
End Sub
Example (Microsoft Excel)

This example enters in the active cell on Sheet1 the name of the first recordset in the Nwindex.mdb database.

To create the Nwindex.mdb database, run the Microsoft Excel example for the CreateDatabase method.

Dim db As Database, td As TableDef
Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")
Set td = db.TableDefs(0)
Sheets("Sheet1").Activate
ActiveCell.Value = td.Name
db.Close