StackOverflow的。我有一个问题,我一直在努力解决问题。目前,我有一个显示联合体数据的表单,其中一个按钮显示“创建新的联盟”。当我单击它时,它会显示一个弹出窗口,允许您输入名称,如下图所示。几乎所有东西都可以正常工作,除非我在创建新记录后无法显示它。请参阅下面的代码 - 您将了解我正在尝试做什么。
顺便说一下,如果重要的话,“Consortium name”组合框允许您选择记录。我不知道它是如何关闭我的更新,但我认为我应该包括这些信息。
以下是表格:
以下是代码:
有趣的是,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
我认为问题的一部分可能与我将“Consortium Form”表单(基于选项卡控件)放入“Main”表单的事实有关。也许是因为我尝试使用某个ConsortiumID打开 Main 表单,因此ConsortiumID不适用于 Consortium表单。看起来好像我无法将主人与其孩子联系起来,但这在过去并不是必需的。请原谅我,如果这些概念听起来模糊不清,因为这只是因为概念在我的脑海中是模糊和混淆的 - 这是我的第一个Access项目。有人有任何提示吗?
答案 0 :(得分:3)
好的,我想我明白了。我添加了以下代码:
DoCmd.OpenForm "Main"
DoCmd.Requery
DoCmd.SearchForRecord , , acFirst, "[ConsortiumID] = " & ConsortiumID
首先,打开表单,然后重新查询能够注册新项目在数据库中的事实,然后使用SearchForRecord打开它。 NEATO。感谢大家。