【问题标题】:Loop to create table relations in Access VBA循环在 Access VBA 中创建表关系
【发布时间】: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 尽管有答案,但这个问题似乎仍然悬而未决。标记答案会给你分数并结束问题,这样人们就不会认为你仍然需要帮助。

标签: vba loops ms-access


【解决方案1】:

这个问题需要答案。在 cmets 中找到:

在你的循环中,添加 Set rel = New Relation

示例:

   Dim db As DAO.Database
   Dim daRs As DAO.Recordset    
   Dim rel As Relation
   Dim fld As DAO.Field

   Set db = CurrentDb
   Set daRs = db.OpenRecordset("QryRelaDict")

   Do While Not daRs.EOF
        Set rel = New Relation
        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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 2017-02-05
    • 2016-02-28
    相关资源
    最近更新 更多