Für 32Bit und 64Bit Office Versionen
Problemstellung:
Wie kann ich eine Index mittels DAO erstellen?
Verweis auf die Microsoft DAO 3.X Object Library erforderlich
Sub NewCreateIndex(strTableName As String, strNewIndexName As String, strNewFldName As String, _ boolNewIgnoreNull As Boolean, boolNewUnique As Boolean, lngSort As Long, _ Optional boolPrimary As Boolean = False) '******************************************* 'Name: NewCreateIndex (Sub) 'Purpose: Erstellt einen neuen Index für die Tabelle in der angegebenen Datenbank 'Author: Thomas Keßler 'Date: Dezember 01, 2002, 10:05:15 'Inputs: strTabName = Name der Tabelle, NewIndexName = Name des neuen Indexes ' NewFldName = Name des neuen Feldes, NewIgnoreNull = Nullwerte ignorieren ?, ' NewUnique=Index Eindeutig ?, Sort=Sortierung des Feldes (0=Aufsteigend, 1=Absteigend) ' boolPrimary=Primär Index 'Output: '******************************************* On Error GoTo ErrHandler Dim db As DAO.Database Dim tdf As DAO.TableDef Dim idx As DAO.Index Dim fld As DAO.Field Set db = CurrentDb Set tdf = db.TableDefs(strTableName) ' Erstellen index Set idx = tdf.CreateIndex(strNewIndexName) ' Anfügen Feld an den Index Set fld = idx.CreateField(strNewFldName) fld.Attributes = lngSort idx.Fields.Append fld idx.Primary = boolPrimary idx.IgnoreNulls = boolNewIgnoreNull If boolPrimary = True Then idx.Unique = True Else idx.Unique = boolNewUnique End If ' Anfügen Index an Auflistung tdf.Indexes.Append idx Set db = Nothing ExitHere: Exit Sub ErrHandler: Dim strErrString As String strErrString = "Error Information..." & vbCrLf strErrString = strErrString & "Error#: " & Err.Number & vbCrLf strErrString = strErrString & " Description: " & Err.Description & vbCrLf MsgBox strErrString, vbCritical + vbOKOnly, "Error in Sub: NewCreateIndex" Resume ExitHere End Sub
Aufruf:
Call NewCreateIndex("tblNeu", "Prim_ID", "Test_ID", False, False, 1, True)
würde in der Tabelle "tblNeu" den Index "Prim_ID" aus dem Feld "Test_ID" mit absteigender Sortierung
als Primärschlüssel erstellen.
Call NewCreateIndex("tblNeu", "TestKey_ID", "Test_ID", True, False, 0, False)
würde in der Tabelle "tblNeu" den Index "TestKey_ID" aus dem Feld "Test_ID" mit aufsteigender Sortierung erstellen.
Ähnliche Artikel
Weiterlesen...