Jetデータベースの中のテーブルにインデックスを作成します。
※このサンプルを動かすにはVisual Basic Tipsの
Jetデータデース(DAO)データベースの作成と削除
Jetデータベース(DAO)テーブルの作成と削除
を行ってデータベースとテーブルを作成してください。
PrivateSub Form_Load()
CallCreateIndex(App.Path & "\work.mdb")
End Sub
SubCreateIndex(strDbPathAs String)
DimintRetAsInteger
DimdbAsDatabase
DimwsAsWorkspace
DimtdfAsTableDef
Dimfld1AsField
Dimfld2AsField
DimidxAsIndex
On Error GoToErrHandler
'ワークスペースの設定
Setws = DBEngine.Workspaces(0)
'データベースのオープン
Setdb = ws.OpenDatabase(strDbPath)
'対象テーブルの設定
Settdf = db.TableDefs("新規テーブル")
'インデックスの作成
Setidx = tdf.CreateIndex("primarykey")
idx.Primary =True'プライマリキーの時指定します。
idx.Unique =True
Setfld1 = idx.CreateField("FieldText")
Setfld2 = idx.CreateField("FieldInteger")
idx.Fields.Append fld1
idx.Fields.Append fld2
'インデックスの追加
tdf.Indexes.Append idx
'データベースのクローズ
db.Close
ws.Close
Exit Sub
ErrHandler:
IfErr = 3283Then'主キーが既に存在(主キーで無い場合は3284になります)
db.TableDefs("新規テーブル").Indexes.Delete "primarykey"
Resume
End If
intRet = MsgBox("<" & Err & ">" & Error(Err), vbOKOnly, "CreateIndex")
End Sub
DownLoad vbtips014.lzh 5KB (VB6.0)