Jetデータベースの中にリレーションシップを作成します。
※このサンプルを動かすにはVisual Basic Tipsの
Jetデータデース(DAO)データベースの作成と削除
Jetデータベース(DAO)テーブルの作成と削除
Jetデータベース(DAO)インデックスの作成と削除
を行ってデータベースとテーブル(新規テーブル1と2の二つ)を作成してください。
PrivateSub Form_Load()
CallCreateRelation(App.Path & "\work.mdb")
End Sub
SubCreateRelation(strDbPathAs String)
DimiAs Integer
DimintRetAs Integer
DimdbAsDatabase
DimwsAsWorkspace
DimrelAsRelation
Dimfld(1To2)AsField
On Error GoToErrHandler
Setws = DBEngine.Workspaces(0)
Setdb = ws.OpenDatabase(strDbPath)
'リレーションの作成
Setrel = db.CreateRelation("新規リレーション")
'主テーブルの定義
rel.Table = "新規テーブル1"
'外部テーブルの定義
rel.ForeignTable = "新規テーブル2"
'参照整合性
rel.Attributes = dbRelationUpdateCascade
'主テーブルのフィールド(項目)の定義
Setfld(1) = rel.CreateField("FieldText")
Setfld(2) = rel.CreateField("FieldInteger")
'外部テーブルのフィールド(項目)の定義
fld(1).ForeignName = "FieldText"
fld(2).ForeignName = "FieldInteger"
'定義したフィールドをテーブルに追加
Fori = 1To2
rel.Fields.Append fld(i)
Next
db.Relations.Append rel
'データベースのクローズ
db.Close
ws.Close
Exit Sub
ErrHandler:
IfErr = 3012Then'リレーションが既に存在
db.Relations.Delete "新規リレーション"
Resume
End If
intRet = MsgBox("<" & Err & ">" & Error(Err), vbOKOnly, "CreateRelation")
End Sub
DownLoad vbtips016.lzh 6KB (VB6.0)