搜索了一下,找不到包含我确切问题的现有帖子。
我正在创建一个Access(2003)数据库,它使用多个表格和表格,这些表格和表格需要相互通信和共享信息(即 - 姓/名等)。主要表格/表格“人员”将保留大部分信息,但其他表格/表格仅保存与某些情况/情况相关的信息,因此“人事”中的每个条目都不会同时输入“雇用“,例如。如果已存在具有相同名称的记录,我希望MsgBox告诉我并打开该条目(在表单中进行编辑),如果没有创建新条目,则使用预先选择的字段自动填充(即 - 名/姓)。
从下拉菜单中选择一个选项后,会访问/打开相应的表单,例如“已聘用”(此部分可用)。
跨表单复制信息不起作用。
Dim rstPers, rstHired As DAO.recordset
Dim LastName As String
If status = "hired" Then
DoCmd.OpenForm "Hired Information"
Set rstPers Forms!Personnel.RecordsetClone
Set rstHired Forms![Hired Information].RecordsetClone
????
...
End If
我尝试过多种方式,但似乎没有任何效果。新表格或表格中没有任何内容。我看错了吗?我应该尝试不同的方法吗?
希望我的解释有意义。谢谢你的帮助。
- 查尔斯
答案 0 :(得分:0)
你的方法确实不好。
您的表单链接到表格。因此,您应尽可能避免使用记录集克隆直接操作或检索表单数据,而应尝试直接从表中检索此数据。 / p>
所以,如果你想打开你的雇佣信息"形式: 当然,由于你没有提供足够的信息,它不会像这样工作。 Dim RS As Recordset
Dim IDperson As String
IDperson = me.ID ' or whatever
Set RS = CurrentDb.OpenRecordset("SELECT ID FROM TableHired WHERE ID='" & IDperson & "'")
If RS.BOF Then
' No record exist - Open form in record creation
DoCmd.OpenForm "FormHired", acNormal, , , acFormAdd
Else
' record exists, open form and position it oon the record's ID
DoCmd.OpenForm "FormHired", acNormal, , "ID='" & RS!ID & "'", acFormEdit
End If
查看此代码并使用您的字段名称(ID),表名称(TableHired)和FormName(FormHired)进行调整,并遵循触发位置和方式的情况。此外,如果您的ID不是字符串,则应删除SQL中的引号