2016-08-02 53 views
1

我有一个报告列出了存款,并将存款ID设置为超链接。 OnClick存款ID,它打开存款条目表格到那个特定的记录。但是,表单会打开一个新记录,而不是用户点击的记录。我认为这是因为我有另一个运行OnLoad的代码来执行新的记录,并且它可能在执行OnClick代码后执行。访问VBA - 从报表打开窗体到特定记录

DepositID从报告的OnClick:

DoCmd.OpenForm "DepositForm", acNormal, "", "[DepositID]= " & [DepositID] 

的OnLoad形式:

DoCmd.GoToRecord , , acNewRec 

是的OnClick代码运行后在onload代码,并有效地不显示从报表中指定的记录?不知道如何解决。

+2

有一种快速简单的方法来检查打印调试的功能!你是否试过在每个事件处理程序中放置一个'Debug.Print“Here或'MsgBox”Here?给他们不同的信息,你将能够看到哪些信号按什么顺序触发。如果在OnClick之后触发OnLoad,您将能够看到它。 – Mikegrann

+0

绝对的,表单打开的顺序是“Open> Load> Resize> Activate> Current”。您可以移除OpenForm调用的Criteria部分,只需将'DepositID'移动到该语句的末尾(作为打开的参数)。然后简单地检查打开参数的“打开” - 如果没有出现新记录。 –

回答

2

我不会在OnLoad事件中使用AddNewRecord。

如果您使用的形成要编辑/添加的目的,你应该有一个开放的形式,两个命令按钮 - 每个目的

从的Form_Load

删除此行
DoCmd.GoToRecord , , acNewRec 

使用你现在所拥有的正是因为是编辑命令 - 或添加编辑模式

DoCmd.OpenForm "DepositForm", acNormal, "", "[DepositID]= " & [DepositID], acFormEdit 

添加一个新的按钮添加新记录如下所示:

DoCmd.OpenForm "DepositForm", acNormal, , , acFormAdd 
+0

这是一个完美的解决方案! – user646464

相关问题