1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

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

Kommentar schreiben

Sicherheitscode
Aktualisieren

Login Form

Neueste Artikel

Problemstellung: Ab MS-Office 2010 gibt es eine 32bit und eine 64bit Variante.Übernimmt man nun eine Datenbank nach 64bit und diese enthält API-Declare Anweisungenerhlt min in der Regel diese...
1.png2.png0.png4.png4.png6.png5.png
Heute102
Gestern127
Diese Woche510
Dieser Monat1889
Total1204465

  • IP: 54.80.83.123
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

1
Online

20. September 2018

Letzte Kommentare

  • Trusted Locations Manager

    Tommy Admin 13.07.2018 13:06
    RE: Trusted Locations Manager
    Hallo Matthias, aus Ermangelung einer 64bit Version kann ich das leider nicht prüfen. Tut mir leid. Gruss ...

    Weiterlesen...

     
  • Trusted Locations Manager

    Matthias 13.07.2018 06:48
    Funktioniert nicht
    Habe gerade den TL-Manager installiert. Nach dem Start sagt er mir, dass es kein Office erkennen ...

    Weiterlesen...