Database.CreateTableDef-Methode (DAO)
Gilt für: Access 2013, Office 2013
Erstellt ein neues TableDef-Objekt (gilt nur für Microsoft Access-Arbeitsbereiche). .
Syntax
Ausdruck . CreateTableDef(Name, Attributes, SourceTableName, Connect)
Ausdruck Eine Variable, die ein Database -Objekt darstellt.
Parameter
Name |
Erforderlich/optional |
Datentyp |
Beschreibung |
---|---|---|---|
Name |
Optional |
Variant |
Ein Variant-Parameter (Untertyp String), der neue TableDef eindeutig benennt. Unter der Name -Eigenschaft finden Sie Einzelheiten zu gültigen TableDef -Namen. |
Attributes |
Optional |
Variant |
Eine Konstante oder Kombination aus Konstanten, mit der mindestens ein Merkmal des neuen TableDef -Objekts angegeben wird. Weitere Informationen finden Sie im Thema zur Attributes -Eigenschaft. |
SourceTableName |
Optional |
Variant |
Ein Variant-Parameter (UntertypString) mit dem Namen einer Tabelle in einer externen Datenbank, die die ursprüngliche Quelle der Daten ist. Die source-Zeichenfolge wird zur SourceTableName-Eigenschafteneinstellung des neuen TableDef-Objekts. |
Connect |
Optional |
Variant |
Ein Variant-Parameter (Untertyp String) mit Informationen über die Quelle einer geöffneten oder verknüpften Datenbank oder einer Datenbank, die in einer Pass-Throug-Abfrage verwendet wird. Weitere Informationen zu gültige Verbindungszeichenfolgen finden Sie inConnect-Eigenschaften. |
Rückgabewert
TableDef
Hinweise
Wenn Sie einen oder mehrere der optionalen Teile für die CreateTableDef-Methode weglassen, können Sie die entsprechende Eigenschaft mithilfe einer entsprechenden Zuweisungsanweisung festlegen oder zurücksetzen, bevor Sie das neue Objekt an eine Auflistung anfügen. Nachdem Sie das Objekt angefügt haben, können Sie einige, aber nicht alle Eigenschaften ändern. Weitere Informationen finden Sie in den Themen zu den einzelnen Eigenschaften.
Wenn name sich auf ein Objekt bezieht, das bereits ein Mitglied einer Auflistung ist, oder wenn Sie im angefügten TableDef- oder Field-Objekt eine ungültige Eigenschaft angeben, tritt bei Verwendung der Append-Methode ein Laufzeitfehler auf. Sie können ein TableDef -Objekt außerdem erst dann an die TableDefs -Auflistung anfügen, nachdem Sie mindestens ein Field -Objekt für das TableDef -Objekt definiert haben.
Um ein TableDef-Objekt aus der TableDefs-Auflistung zu entfernen, verwenden Sie die Delete-Methode für die Auflistung.
Beispiel
Dieses Beispiel erstellt ein neues TableDef-Objekt in der Northwind-Datenbank.
Sub CreateTableDefX()
Dim dbsNorthwind As Database
Dim tdfNew As TableDef
Dim prpLoop As Property
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
' Create a new TableDef object.
Set tdfNew = dbsNorthwind.CreateTableDef("Contacts")
With tdfNew
' Create fields and append them to the new TableDef
' object. This must be done before appending the
' TableDef object to the TableDefs collection of the
' Northwind database.
.Fields.Append .CreateField("FirstName", dbText)
.Fields.Append .CreateField("LastName", dbText)
.Fields.Append .CreateField("Phone", dbText)
.Fields.Append .CreateField("Notes", dbMemo)
Debug.Print "Properties of new TableDef object " & _
"before appending to collection:"
' Enumerate Properties collection of new TableDef
' object.
For Each prpLoop In .Properties
On Error Resume Next
If prpLoop <> "" Then Debug.Print " " & _
prpLoop.Name & " = " & prpLoop
On Error GoTo 0
Next prpLoop
' Append the new TableDef object to the Northwind
' database.
dbsNorthwind.TableDefs.Append tdfNew
Debug.Print "Properties of new TableDef object " & _
"after appending to collection:"
' Enumerate Properties collection of new TableDef
' object.
For Each prpLoop In .Properties
On Error Resume Next
If prpLoop <> "" Then Debug.Print " " & _
prpLoop.Name & " = " & prpLoop
On Error GoTo 0
Next prpLoop
End With
' Delete new TableDef object since this is a
' demonstration.
dbsNorthwind.TableDefs.Delete "Contacts"
dbsNorthwind.Close
End Sub
In diesem Beispiel werden die CreateTableDef - und die FillCache -Methode sowie die CacheSize -, die CacheStart - und die SourceTableName -Eigenschaft verwendet, um die Datensätze in einer verknüpften Tabelle zwei Mal aufzuzählen. Daraufhin werden die Datensätze in einem Cache mit 50 Datensätzen zweimal aufgezählt. Anschließend enthält das Beispiel durch die verknüpfte Tabelle die Leistungsstatistik für die zwischengespeicherten und die nicht zwischengespeicherten Datensätze.
Sub ClientServerX3()
Dim dbsCurrent As Database
Dim tdfRoyalties As TableDef
Dim rstRemote As Recordset
Dim sngStart As Single
Dim sngEnd As Single
Dim sngNoCache As Single
Dim sngCache As Single
Dim intLoop As Integer
Dim strTemp As String
Dim intRecords As Integer
' Open a database to which a linked table can be
' appended.
Set dbsCurrent = OpenDatabase("DB1.mdb")
' Create a linked table that connects to a Microsoft SQL
' Server database.
Set tdfRoyalties = _
dbsCurrent.CreateTableDef("Royalties")
' Note: The DSN referenced below must be set to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the Microsoft SQL Server.
tdfRoyalties.Connect = _
"ODBC;DATABASE=pubs;DSN=Publishers"
tdfRoyalties.SourceTableName = "roysched"
dbsCurrent.TableDefs.Append tdfRoyalties
Set rstRemote = _
dbsCurrent.OpenRecordset("Royalties")
With rstRemote
' Enumerate the Recordset object twice and record
' the elapsed time.
sngStart = Timer
For intLoop = 1 To 2
.MoveFirst
Do While Not .EOF
' Execute a simple operation for the
' performance test.
strTemp = !title_id
.MoveNext
Loop
Next intLoop
sngEnd = Timer
sngNoCache = sngEnd - sngStart
' Cache the first 50 records.
.MoveFirst
.CacheSize = 50
.FillCache
sngStart = Timer
' Enumerate the Recordset object twice and record
' the elapsed time.
For intLoop = 1 To 2
intRecords = 0
.MoveFirst
Do While Not .EOF
' Execute a simple operation for the
' performance test.
strTemp = !title_id
' Count the records. If the end of the
' cache is reached, reset the cache to the
' next 50 records.
intRecords = intRecords + 1
.MoveNext
If intRecords Mod 50 = 0 Then
.CacheStart = .Bookmark
.FillCache
End If
Loop
Next intLoop
sngEnd = Timer
sngCache = sngEnd - sngStart
' Display performance results.
MsgBox "Caching Performance Results:" & vbCr & _
" No cache: " & Format(sngNoCache, _
"##0.000") & " seconds" & vbCr & _
" 50-record cache: " & Format(sngCache, _
"##0.000") & " seconds"
.Close
End With
' Delete linked table because this is a demonstration.
dbsCurrent.TableDefs.Delete tdfRoyalties.Name
dbsCurrent.Close
End Sub