组合框在首次使用(打开)时运行rowSource选择,但在后续激活时不运行

时间:2014-05-05 13:03:37

标签: vba ms-access

我有一个主表格(大学),其中嵌入了子表格(学生)列表。我有一些VBA允许新学生使用“DoCmd.OpenForm”加载StudentEntryForm

在StudentEntryForm中,我有一个带有行源的ComboBox,用于检索UniversityName(而不是显示ID)

Control Source = UniversityID
Row Source = SELECT University.ID, University.Name FROM University;

和“On Activate”我正在设置UniversityID字段

Me.UniversityID = frmMaster.ID

如果StudentEntryForm实际上被强制打开(从已关闭),那么这很好,大学名称显示在组合框中

但是,下次我从第一个子表单中选择New,StudentEntryForm显示但是大学名称为空白 - “On Activate”运行。

有没有办法强制行源被“重新执行”?

我试过了。

  • Me.requery
  • Me.UniversityCombo.refresh
  • Me.refresh

由于

编辑:另一个关键区别是 - 在第一次加载时,分配并显示下一个学生ID - 它会显示添加了此ID的新记录,但在后续加载/激活时ID =“(新)”。

1 个答案:

答案 0 :(得分:0)

当你在SubForm上选择New时,它背后应该有这个代码行:

Forms!MyMainForm!UniversityID.RecordSource = "SELECT University.ID, University.Name FROM University"
Forms!MyMainForm!UniversityID.Refresh

这样,只要按下该按钮,就会更新组合的记录源。

显然,在上面的代码中将“MyMainForm”替换为您的实际表单名称。