Visual Basic Tips


Jetデータベース(DAO)インデックス名の列挙


Jetデータベースのインデックス名を列挙し、コンボボックス、リストボックスにその名称を追加します。

Private Sub Form_Load()
  Call IdxNameCtlSet(Combo1, App.Path & "\work.mdb", "新規テーブル")
  Call IdxNameCtlSet(List1, App.Path & "\work.mdb", "新規テーブル")
End Sub

Sub IdxNameCtlSet(ctlControl As Control, strDbPath As String, strTblName As String)
  
Dim ws As Workspace
  
Dim db As Database
  
Dim fld As Field
  
Dim idx As Index
  
Dim tdf As TableDef

  
If TypeOf ctlControl Is ComboBox Or TypeOf ctlControl Is ListBox Then
  
Else
    
Exit Sub
  
End If

  ctlControl.Clear

  
Set ws = DBEngine.Workspaces(0)
  
Set db = ws.OpenDatabase(strDbPath, False, True)

  
For Each tdf In db.TableDefs
    
If tdf.Name = strTblName Then
      
For Each idx In tdf.Indexes
        ctlControl.AddItem idx.Name
      
Next
    
End If
  
Next

  
If TypeOf ctlControl Is ComboBox Then
    ctlControl.Text = ctlControl.List(0)
  
End If

  db.Close
  ws.Close
End Sub


DownLoad vbtips024.lzh 7KB (VB6.0)