TKSoft-Online

Index-Erstellen (ADOX) PDF Drucken E-Mail
( 0 Votes )
MS-Access Codes - Codeschnipsel ADO(X)
  
Montag, den 31. Dezember 2007 um 01:00 Uhr

Problemstellung:

Wie kann ich einen Index mittels ADO(X) erstellen?


Verweis auf die Microsoft ActiveX Data Objects 2.X Library erforderlich
Verweis auf die Microsoft ADO Ext. 2.X for DDL and Security Library erforderlich

 


Sub NewCreateIndexADOX(strTableName As String, strNewIndexName As String, strNewFldName As String, _
                   boolNewIgnoreNull 
As Boolean, boolNewUnique As Boolean
, _
                   
Optional boolPrimary As Boolean False
)
'*******************************************
'Name:      NewCreateIndex (Sub)
'Purpose:   Erstellt einen neuen Index für die Tabelle in der angegebenen Datenbank mittels ADOX
'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 ?
'           boolPrimary=Primär Index
'Output:
'*******************************************
On Error GoTo 
ErrHandler

Dim cn As New 
ADODB.Connection
Dim cat As New 
ADOX.Catalog
Dim tbl As 
ADOX.Table
Dim idx As 
ADOX.Index

Set 
cn = CurrentProject.Connection
Set 
cat.ActiveConnection = cn
Set 
tbl = cat.Tables(strTableName)
Set 
idx = CreateObject("ADOX.Index")
    
    
With 
idx
        .Name = strNewIndexName
        
If boolNewIgnoreNull = False Then
            .IndexNulls = adIndexNullsDisallow
        
Else
            .IndexNulls = adIndexNullsIgnore
        
End If
        .PrimaryKey = boolPrimary
        
If boolPrimary = True Then
            .Unique = True
        Else
            .Unique = boolNewUnique
        
End If
        .Columns.Append strNewFldName
    
End With
    
    tbl.Indexes.Append idx
             
Set cat = Nothing
cn.Close
    
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: NewCreateIndexADOX"
    
Resume 
ExitHere
End Sub

Aufruf:


Call NewCreateIndexADOX("tblNeu", "Test_INDEX", "Test_F", False, True, True)


würde in der Tabelle "tblNeu" einen Index "Test_INDEX" für das Feld "Test_F" erstellen,
Nullwerte ignorieren=False, Eindeutig=True, Primär=True.


Call NewCreateIndexADOX("tblNeu", "Test_I", "fld_Test5", True, False, False)

würde in der Tabelle "tblNeu" einen Index "Test_I" für das Feld "fld_Test5F" erstellen,
Nullwerte ignorieren=True, Eindeutig=False, Primär=False.

DatumKlicks
Total1282
Mi. 231
Di. 222
So. 204
Fr. 181
Do. 171
Mi. 162
Di. 152
Aktualisiert ( Freitag, den 02. Juli 2010 um 06:51 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173459 Downloads