在VBA中打开表单到新记录

时间:2016-06-09 19:24:25

标签: vba ms-access access-vba

我的目标是让主菜单上的所有命令按钮打开一个表单,直接输入新记录。但是,我已经有一个完美的代码,所以所有表单都打开一个新的条目,我仍然可以导航到以前的条目。除了一个。我对其他代码进行了两次和三次检查,并没有区别。但是出于某种原因,这一形式(我只是将其称为“形式”,用于此问题)打开第一条记录,而不是新记录。下面是我正在使用的代码不起作用(尽管它与我工作的其他代码相同。)

Private Sub Command13_Click()
On Error GoTo Err_Command13_Click

   Dim stDocName As String
   Dim stLinkCriteria As String

   stDocName = "Form"
   DoCmd.OpenForm stDocName, , , stLinkCriteria
   DoCmd.GoToRecord , , acNewRec

Exit_Command13_Click:
   Exit Sub

Err_Command13_Click:
   MsgBox Err.Description
   Resume Exit_Command13_Click

End Sub

当然这是一个简单的解决办法,但我不知所措。

1 个答案:

答案 0 :(得分:2)

来自 DoCmd.GoToRecord方法帮助主题......

  

如果您将 objecttype objectname 参数留空(   默认常量, acActiveDataObject ,假设 objecttype ),   假定活动对象。

通常DoCmd.OpenForm stDocName应该使stDocName成为活动对象,这意味着应该对该表单应用GoToRecord。而且你表示你的其他形式会发生什么。

但是,由于在这种情况下它不起作用,因此为 objecttype objectname 参数提供GoToRecord值:

DoCmd.OpenForm stDocName, , , stLinkCriteria
'DoCmd.GoToRecord , , acNewRec
DoCmd.GoToRecord acDataForm, stDocName, acNewRec

令人费解的一点是stLinkCriteria是一个空字符串。因此,当您致电OpenForm时,包含该内容似乎并不有用。但我无法看到这会如何影响GoToRecord的结果。