Ms access 创建新记录后,我可以';我无法让我的表单在Access 2010中显示它
堆栈溢出。我有一个问题,我已经纠结太久了。目前,我有一个显示联合体数据的表单,其中有一个按钮,上面写着“创建新联合体”。当我单击它时,它会显示一个弹出窗口,允许您输入名称,如下图所示。几乎所有的工作都很好,除了我无法让它在创建新记录后显示它。请看下面我的代码——您将了解我正在尝试做什么 顺便说一句,如果重要的话,“联合体名称”组合框允许您选择记录。我不知道它怎么会把我的更新抛到脑后,但我想我应该包括这些信息 以下是表格: 代码如下: 有趣的是,StackOverflow在进行编辑后似乎没有正确地缩进代码——我通过一个新的测试帖子成功地完成了这项工作。哦,好吧。我也不知道这件事:Ms access 创建新记录后,我可以';我无法让我的表单在Access 2010中显示它,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,堆栈溢出。我有一个问题,我已经纠结太久了。目前,我有一个显示联合体数据的表单,其中有一个按钮,上面写着“创建新联合体”。当我单击它时,它会显示一个弹出窗口,允许您输入名称,如下图所示。几乎所有的工作都很好,除了我无法让它在创建新记录后显示它。请看下面我的代码——您将了解我正在尝试做什么 顺便说一句,如果重要的话,“联合体名称”组合框允许您选择记录。我不知道它怎么会把我的更新抛到脑后,但我想我应该包括这些信息 以下是表格: 代码如下: 有趣的是,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”表单有关。可能是因为我试图用某个联合体ID打开主窗体,该联合体ID不适用于联合体窗体。看起来好像我不能把主人和它的孩子联系起来,但这在过去是不必要的。如果这些概念听起来很模糊,请原谅我,因为这只是因为这些概念在我的脑海中还很模糊和混乱——这是我的第一个Access项目。有人有什么建议吗?好的,我想我知道了。我添加了以下代码:
DoCmd.OpenForm "Main"
DoCmd.Requery
DoCmd.SearchForRecord , , acFirst, "[ConsortiumID] = " & ConsortiumID
首先,打开表单,然后重新查询以注册新项目在数据库中的事实,然后使用SearchForRecord将其打开。尼托。谢谢大家 好吧,我想我知道了。我添加了以下代码:
DoCmd.OpenForm "Main"
DoCmd.Requery
DoCmd.SearchForRecord , , acFirst, "[ConsortiumID] = " & ConsortiumID
首先,打开表单,然后重新查询以注册新项目在数据库中的事实,然后使用SearchForRecord将其打开。尼托。谢谢大家 代码图片的意义是什么?当我粘贴其他文本时,它没有突出显示。我觉得这样会更可读。如果你愿意的话,我可以粘贴代码。我做了,但奇怪的是,编辑后没有正确缩进。当我创建新帖子时,它可以正确缩进。奇怪。代码图片的意义是什么?当我粘贴其他文本时,它没有突出显示。我觉得这样会更可读。如果你愿意的话,我可以粘贴代码。我做了,但奇怪的是,编辑后没有正确缩进。当我创建新帖子时,它可以正确缩进。奇怪的