【问题标题】:ms access insert multiple rows into parent child tablesms access 将多行插入父子表
【发布时间】:2020-07-13 20:54:03
【问题描述】:

您好,我一直在尝试根据我的情况调整之前的堆栈溢出帖子,但未能成功。我在父子关系(一对多)中有 2 毫秒的访问表。我正在尝试编写一些 vba 以将 1 条记录插入父表并将多条记录插入子表。我看到这篇文章做了一些接近我想要的事情,但它是一对一的关系。有人可以提供一个示例,说明如何处理子表中的多行吗?

How can I make new records cascade across a one to one relationship in MS Access?

我正在使用 MS Access 2010,我正在将 vba 作为一个模块写入 MS Excel 2010。

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    这一切都与您如何将“许多”条目表连接到“一个”表有关。 (除非我错过了你的问题的重点。)这个例子可以说明:

    Option Explicit
    
    Sub AddClassWithStudents()
        Dim tblClass As Recordset
        Dim tblStudents As Recordset
        Dim db As database
        Dim classID As Long
        Dim newKids() As String
        Dim kid As Variant
    
        Set db = DBEngine(0).OpenDatabase("Database1.accdb")
        Set tblClass = db.openrecordset("tblClasses", dbopendynaset)
        Set tblStudents = db.openrecordset("tblStudents", dbopendynaset)
    
        '--- add a new class
        tblClass.AddNew
        tblClass("Title").Value = "Calculus"
        tblClass("Teacher").Value = "Einstein"
        tblClass.Update
        tblClass.Bookmark = tblClass.LastModified  'makes it the current record
        classID = tblClass("ID").Value
    
        '--- add some students
        newKids = Split("Tom,Dick,Harry,Suzie,Mary", ",", , vbTextCompare)
        For Each kid In newKids
            tblStudents.AddNew
            tblStudents("ClassID").Value = classID
            tblStudents("StudentName").Value = kid
            tblStudents.Update
        Next kid
    
        db.Close
        Set tblStudents = Nothing
        Set tblClass = Nothing
        Set db = Nothing
    End Sub
    

    【讨论】:

    • 谢谢彼得,我会检查一下并根据我的情况进行调整。我以前从未使用过书签。我会做一些研究
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多