当前位置:  开发笔记 > 后端 > 正文

多对多关系中的数据输入表单/子表单

如何解决《多对多关系中的数据输入表单/子表单》经验,为你挑选了0个好方法。

我有一个具有多对多关系的Access数据库.origin表称为Property,目标表称为Person.房产可以拥有多个房产,一个人可以拥有多个房产.我创建了一个连接表来适应这种MM关系.

这是关系布局:在此输入图像描述

为了填充这些表,我为Property创建了一个表单,其中包含Person表的子表单.我按照几篇文章和帖子来实现所需的功能.他们在这里,这里,这里和这里.

这是表格: 在此输入图像描述

PersonName是一个组合框,其行源设置为以下SQL查询:

SELECT Person.idPerson, Person.PersonName FROM Person; 

列数设置为2,宽度设置为0厘米; 1厘米

我用于组合框的NoInList事件的VBA代码 是:

Private Sub PersonName_NotInList(NewData As String, Response As Integer)
strSQL = "INSERT INTO Person([PersonName]) " & _
                 "VALUES ('" & NewData & "');"
        DoCmd.SetWarnings False
        DoCmd.RunSQL strSQL
        DoCmd.SetWarnings True
        MsgBox "The new person has been added to the list." _
            , vbInformation, "Data Entry"
        Response = acDataErrAdded
End Sub

到目前为止一切正常,但我面临的情况是两个人的名字相同.每次键入表中已有的名称时,表单都不允许这样做,可以预见的是,您将获得与此人关联的现有值.在Person表中创建一个新条目使得该条目在表单的组合框中可见,但我不希望数据条目用户编辑表.

如何实现从表单在Person表中创建新条目的功能,同时要求用户确认新条目?

PS我知道问题标题没有具体反映内容,但我找不到更好的措辞.

编辑:为了简化问题,我减少了表格中的字段.还有其他属性,如出生日期,可以区分两个同名的人.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有