我是新手,但我遇到了问题。看一下我表关系的截图。我想创建一个表单,当有人输入“学生代码”时,学生代码将填充在所有三个表中,而不仅仅是一个表中,从而节省时间和混淆,因为只需要输入一次。提前谢谢大家。见http://i.stack.imgur.com/bHBqM.png
答案 0 :(得分:0)
在学生信息表单的AfterInsert事件中,运行附加VBA查询。有了这个,每次添加一个新的学生记录时,相应的学生代码将被插入到其他相关的表中:
DoCmd.RunSQL "INSERT INTO [Parent Information] (Student Code)" _
& " VALUES (" & Forms!yourformname![Student Code] & ");"
DoCmd.RunSQL "INSERT INTO [Student Medical Conditions] (Student Code) " _
& " VALUES (" & Forms!yourformname![Student Code] & ");"
或者,您可以将上述查询保存为存储查询,并通过宏(Open Query)或VBA(DoCmd.OpenQuery)运行它们 - 仍然在AfterInsert表单事件中:
DoCmd.OpenQuery "ParentInformationQ"
DoCmd.OpenQuery "StudentMedicalConditionsQ"
如果您的子表单包含在主表单中,请添加Requery命令以更新子表单。这样,您将看到子表单中出现空白行,可以进行数据编辑(因为您在之前的查询中创建了记录,因此无法输入):
Forms!yourformname!yourparentinfosubformname.Form.Requery
Forms!yourformname!yourmedicalconditionssubformname.Form.Requery