我有一个基于表注册的子表单(RegistrationFsub)。它的目的是在一个人与他们在组中注册的年份之间建立一对多的关系。
当妈妈在新的一年注册时,我有一个命令按钮,它应该向表中添加一个新行,使用 MomID 注册(来自父表单:MomsFsub)和当前注册年份的开始日期(YearStart,来自表年)。由于当前注册期由最新日期表示,因此我想使用 Max() 命令从 YearT 中检索它。我尝试了以下代码:
Dim db As DAO.Database
Dim sqlSTR As String
Dim IDvar As String
'new code added since question posted
Set db = CurrentDb
Call MsgBox (Max(YearT!YearStart), vbOKonly)
'MsgBox checks value returned for Max(YearStart)
'end new code
IDvar = CStr(MomID)
sqlSTR = "INSERT INTO Registration(YearStart, MomID) SELECT Max(YearStart), "_
& IDvar & " AS expr1 FROM YearT;"
'new: debug statement
Debug.Print sqlSTR
db.Execute sqlSTR
我得到一个“对象变量或未设置块变量”错误。我究竟做错了什么?
编辑:将 db 设置为 Currentdb 可修复 Object 变量错误,但现在返回“参数太少”错误。原来的表名“Year”已更改为“YearT”,因为无论如何我只在这一段代码中引用它。
更新
现在我已经修复了 RegistrationFsub,似乎该按钮还插入了当前显示在表单上其他控件中的数据。因此,如果 2012 条目有RID = 1
and Leader = True
,上面的代码会在其中创建一个Registration
也有andRID = 1
的条目Leader = True
。我怎样才能将其他字段保留为空白?