Visual Basic Tips


Jetデータベース(DAO)リレーションの作成と削除


Jetデータベースの中にリレーションシップを作成します。

※このサンプルを動かすにはVisual Basic Tipsの
 Jetデータデース(DAO)データベースの作成と削除
 Jetデータベース(DAO)テーブルの作成と削除
 Jetデータベース(DAO)インデックスの作成と削除
 を行ってデータベースとテーブル(新規テーブル1と2の二つ)を作成してください。

Private Sub Form_Load()
  
Call CreateRelation(App.Path & "\work.mdb")
End Sub


Sub CreateRelation(strDbPath As String)
  
Dim i As Integer
  
Dim intRet As Integer
  
Dim db As Database
  
Dim ws As Workspace
  
Dim rel As Relation
  
Dim fld(1 To 2) As Field

  
On Error GoTo ErrHandler

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

  
'リレーションの作成
  
Set rel = db.CreateRelation("新規リレーション")
  
'主テーブルの定義
  rel.Table = "新規テーブル1"
  
'外部テーブルの定義
  rel.ForeignTable = "新規テーブル2"
  
'参照整合性
  rel.Attributes = dbRelationUpdateCascade
  
'主テーブルのフィールド(項目)の定義
  
Set fld(1) = rel.CreateField("FieldText")
  
Set fld(2) = rel.CreateField("FieldInteger")
  
'外部テーブルのフィールド(項目)の定義
  fld(1).ForeignName = "FieldText"
  fld(2).ForeignName = "FieldInteger"

  
'定義したフィールドをテーブルに追加
  
For i = 1 To 2
    rel.Fields.Append fld(i)
  
Next

  db.Relations.Append rel

  
'データベースのクローズ
  db.Close
  ws.Close

  
Exit Sub
ErrHandler:
  
If Err = 3012 Then 'リレーションが既に存在
    db.Relations.Delete "新規リレーション"
    
Resume
  
End If
  intRet = MsgBox("<" & Err & ">" & Error(Err), vbOKOnly, "CreateRelation")
End Sub


DownLoad vbtips016.lzh 6KB (VB6.0)