【发布时间】:2018-03-26 11:46:15
【问题描述】:
我用下面的代码创建了一个表关系。
Dim rel As New Relation
Dim db As DAO.Database
Dim fld As DAO.Field
Set db = CurrentDb
rel.Attributes = dbRelationDontEnforce + dbRelationRight
rel.Name = "RelationName"
rel.Table = "tblParent"
rel.ForeignTable = "tblChild"
Set fld = rel.CreateField("FieldID")
fld.Name = "FieldID"
fld.ForeignName = "FieldID"
rel.Fields.Append fld
db.Relations.Append rel
我尝试循环它以从查询“QryRelaDict”创建多个关系,如下所示。它在第一次迭代中创建了第一个关系,在第二次迭代中它在rel.Attributes = dbRelationEnforce 处停止
运行时错误 3219:无效操作
Dim db As DAO.Database
Dim daRs As DAO.Recordset
Dim rel As New Relation
Dim fld As DAO.Field
Set db = CurrentDb
Set daRs = db.OpenRecordset("QryRelaDict")
Do While Not daRs.EOF
Debug.Print daRs!tblPare & "-" & daRs!tblChil
rel.Attributes = dbRelationEnforce
rel.Name = daRs!tblPare & "-" & daRs!tblChil & "-" & daRs!AAA
rel.Table = daRs!tblPare
rel.ForeignTable = daRs!tblChil
Set fld = rel.CreateField(daRs!AAA)
fld.Name = daRs!AAA
fld.ForeignName = daRs!AAA
rel.Fields.Append fld
db.Relations.Append rel
daRs.MoveNext
Loop
【问题讨论】:
-
在你的循环中,添加
Set rel = New Relation。 -
是的............;)
-
@davidzxc574 尽管有答案,但这个问题似乎仍然悬而未决。标记答案会给你分数并结束问题,这样人们就不会认为你仍然需要帮助。