我有一个选项卡式导航。我有一个绑定表单,用户双击长列表中的单个用户。我想转到一个未绑定的表单,并使用有关该用户的详细信息预加载表单(编辑用户)。我专门使用未绑定的表单,因为我想显示保存/取消按钮。我找不到任何方法将用户的 id 传递到load_form调用中。我错过了什么吗?我必须使用某种全局(这对我来说似乎很糟糕)?
您可以在打开表单时使用 OpenArgs:-
DoCmd.OpenForm "MyForm", acNormal,,,,,Args
无论 Args 是什么,都可以在"MyForm"中引用为 Me.OpenArgs
例如,如果您传递数字PK,则可以使用以下内容:
dim db as dao.database
set db = currentdb
dim rs as dao.recordset
set rs = db.openrecordset ("select * from MyTable where PK=" & me.openargs", dbopendynaset, dbfailonerror)
if rs.eof then
'didn't find record with PK...
else
'then populate the unbound controls on your form with the fields from the recordset
...
请注意,您不需要为了提供保存/取消而具有未绑定的表单。 如果为窗体的"更新前"事件编写事件处理程序,则可以根据需要取消更改或提交更改。