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

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool "SmartTools SQL aus Abfragen 3.0"...
1.png2.png6.png8.png5.png2.png1.png
Heute4
Gestern128
Diese Woche255
Dieser Monat10021
Total1268521

  • IP: 35.172.195.49
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

4
Online

20. November 2019

Letzte Kommentare

  • SQL zu VBA Konverter

    Tommy Admin 03.11.2019 16:33
    RE: SQL zu VBA Konverter
    Hallo Elmard, danke für die Info. :lol:

    Weiterlesen...

     
  • SQL zu VBA Konverter

    elmard 03.11.2019 14:49
    Bei SmartTools neue Version 4.0
    Dieses Tool liegt inzwischen in der Version 4 vor und läuft nun auch von A2013 und A2016 sowie im ...

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...

     
  • 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...