access中用窗体向导方法创建子窗体。最后得到的主窗体与子窗体不同步,而成了修改数据表。如何解决?

2024-11-08 06:39:11
推荐回答(3个)
回答1:

1、打开access软件,新建一个学生表。打开学生表,选择创建选项卡,点击窗体向导按钮,弹出窗体向导对话框。

2、在对话框中,点击双向右箭头,将可用字段全部设为选定字段。单击下一步。

3、在出现的新界面中为窗体选好布局,这里选择表格。单击下一步。

4、在新出现的界面中将窗体名命名为学生,选择默认的打开窗体查看或输入信息,单击完成。

5、此时会出现名为学生的窗体。

回答2:

其实我在第一时间就看到你的提问,但觉得要回答清楚,涉及相关内容较多,就没及时回答。今天有空,我就慢慢回答你。
1、你用向导方法创建子窗体,其实是创建了一个一对多的窗体。在这里我们先假设一个例子,我们搞一个病人就诊记录的程序,有一个“患者表”(患者姓名,性别,身份证,地址,……)和一个“就诊记录表”(姓名,就诊时间,用药,……),主窗体显示患者基本信息,而子窗体则显示各次就诊的内容,主窗体患者姓名变动后,子窗体内容相应变化;这里,实际上“患者表”和“就诊记录表”是一对多的关系,如果不是一对多就没有不要创建子窗体了,用向导方法创建子窗体,会自动创建了一个一对多的窗体。
2、下面再谈谈实施参照完整性的话题。当通过“患者表”的[患者姓名]与“就诊记录表”的[姓名]建立一对多关系后,他们之间的完整性规则也就建立了。根据完整性规则约定,不能在“多端”添加一条“一端”不存在的记录,也就是不能在“就诊记录表”上添加“患者表”不存在的患者的记录;根据规则约定,也不能删除修改“多端”存在记录的“一端”的主键值,也就是“就诊记录表”中有某一人的记录,你不能删除修改“一端”该人的患者姓名,这样才能保证相关表数据的完整性,如果允许的话,就相当于允许在“多端”添加一条“一端”不存在的记录了。这就是你说的“会蹦出来“由于表某某中包含了相关记录,不能删除或改变该记录”的警告对话框,而且不能保存”的原因了。当然,并不是不能删除修改“一端”的主键值,只要在编辑两表关系时选择了“联级删除”“联级更改”就可,这样当“一端”的记录删除时,“多端”记录也就同时删除了,“一端”没记录,“多端”的记录没有存在的必要,修改时同理。
3、你用向导创建的主窗体和子窗体是相关的,在设计试图下,打开子窗体的属性“数据”可以看到有“链接主窗体字段”“链接子字段”的内容,证明两个窗体是根据什么字段相关联的,假如按我们的例子应分别是“患者姓名”“姓名”;如果留空,那么两个窗体就没有关联了。
4、再回到你的问题。理解以上内容后,你在主窗体输入新值,当然成了修改记录了。你应当在主窗体创建一个新的未绑定文本框(按例子,用来输入姓名),设置主窗体的记录源是基于 查询条件等于这个文本框 的查询,就会同步了。为了方便,可将这个未绑定文本框设为组合框,而组合框的选项来源于“患者表”的“患者姓名”。
不知我说明白了吗?但愿与你有帮助。

回答3:

主子表用关系做间级关联