堆栈溢出。我有一个困扰了太久的问题。目前,我有一个显示联盟数据的表单,带有一个显示“创建新联盟”的按钮。当我单击它时,它会显示一个弹出窗口,允许您输入名称,如下图所示。几乎一切正常,除了在创建新记录后我无法让它显示新记录。请参阅下面的代码-您会了解我正在尝试做什么。
顺便说一句,如果重要的话,“联盟名称”组合框允许您选择记录。我看不出它如何让我的更新失效,但我认为我应该包含这些信息。
这是表格:
这是代码:
有趣的是,StackOverflow 在进行编辑后似乎没有正确缩进代码——我能够通过一个新的测试帖子成功地做到这一点。那好吧。我也是这个菜鸟:
Private Sub CreateConsortiumButton_Click()
If IsNull(Me.ConsortiumNameText) Or Me.ConsortiumNameText = "" Then ''insert better validation here
MsgBox "Please enter a valid consortium name."
Else
'' Create a new Consortium record with the ConsortiumNameText field on the popup window
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Consortium")
rst.AddNew
rst("Consortium name").Value = Me.ConsortiumNameText
ConsortiumID = rst("ConsortiumID").Value
rst.Update
'' Now, create a corresponding record in the ResearchContributions table
Set rst = CurrentDb.OpenRecordset("ResearchContributions")
rst.AddNew
rst("ConsortiumID").Value = ConsortiumID
rst.Update
MsgBox "Consortium " & Me.ConsortiumNameText & " successfully created."
'' Change the form's combo box to reflect the new record
Forms!Main!NavigationSubform!ConsortiumNameCombobox = Me.ConsortiumNameText
'' Close popup
DoCmd.Close
'' Attempt to set the record on the main form to the newly created one - NOT WORKING!
DoCmd.OpenForm "Main", acNormal, , "[ConsortiumID] = " & ConsortiumID
End If
End Sub
我认为部分问题可能与我已将基于选项卡控件的“联盟表单”表单放入“主”表单这一事实有关。也许是因为我试图用某个 ConsortiumID 打开Main表单,所以 ConsortiumID 不适用于Consortium Form。似乎我无法将主人与其孩子联系起来,但过去没有必要这样做。如果这些概念听起来很模糊,请原谅我,因为这只是因为这些概念在我的脑海中还很模糊——这是我的第一个 Access 项目。有人有任何提示吗?