Ms access MSAccess:是否将Recordsetclone中的ItemId获取到新表中?
我有一个AccessDB应用程序,需要将当前用户应用的过滤器的ItemID抓取到一个新表中,以便在下游使用。使用子窗体数据表.recordsetclone属性,我可以看到所需的记录集.recordcount报告正确的记录数。否则,以下操作将不会生成所需的临时表,AccessVBA也不会抱怨Ms access MSAccess:是否将Recordsetclone中的ItemId获取到新表中?,ms-access,vba,Ms Access,Vba,我有一个AccessDB应用程序,需要将当前用户应用的过滤器的ItemID抓取到一个新表中,以便在下游使用。使用子窗体数据表.recordsetclone属性,我可以看到所需的记录集.recordcount报告正确的记录数。否则,以下操作将不会生成所需的临时表,AccessVBA也不会抱怨 Dim db As DAO.Database Dim rstItemIDs As DAO.Recordset Dim strSQL as String Set db = CurrentDb set
Dim db As DAO.Database
Dim rstItemIDs As DAO.Recordset
Dim strSQL as String
Set db = CurrentDb
set rstItemIDs = Forms!Mainform![Data subform].Form.RecordsetClone
msgbox rstItemIDs.recordcount 'reports the correct result
strSQL = "SELECT rstItemIDs.ItemID INTO tempTable FROM rstItemIDs;"
db.Execute strSQL
是否可以针对dao.recordset构造SQL选择查询
感谢您提供的所有指针。Access SQL将不接受DAO或ADODB记录集作为查询的数据源 然而,我感到困惑的是,当您尝试时,Access并没有抱怨。每次尝试复制您的示例代码时,都会出现错误3078,Microsoft Access数据库引擎无法找到输入表或查询“rstItemIDs”。确保它存在并且其名称拼写正确 即使DoCmd.SetWarnings False也没有抑制该错误消息 如果您对替代方案感兴趣,您可以持久化诱惑,而不是每次都创建一个新版本,然后删除其内容并通过RSTITEMID将每个值添加到第二个记录集中。虽然这是一个RBAR行,但对于一个小的记录集来说可能不会太痛苦 基于集合的方法可以是基于表单的.RecordSource和.Filter属性创建查询。例如,如果我的表单的.RecordSource为SELECT*FROM foo,而当前表单的.Filter为id>10,这将给我一个SELECT,返回表单的过滤记录: ReplaceMe.RecordSource、;、&vbcrlf和&Me.过滤器
HansUp-非常有帮助!您的评论提示我尝试使用子窗体的.Filter属性作为makeTable查询的基础。我已经在其他地方使用过RBAR方法,但这些方法在扩展方面失败得很惨。这种方法似乎和预期的一样有效,即使是在更大的数据集上。