在VBA中,如何将filter转换为sql string where子句

时间:2015-09-30 11:16:54

标签: vba access-vba

有没有人有更好的方法来做到这一点?我希望用户能够过滤到一组记录,然后使用sql语句对过滤后的记录执行某些操作。

此刻我的代码看起来像下面这样,并且它有效。但我确实想知道是否有更好的(或其他?)方法来实现这一点,可以避免笨重的Replace语句?我想知道我是否可以使用记录集来实现它,但除非我遗漏了某些东西,否则无法对记录集进行设置操作,我必须单独遍历记录才能这样做。

还有其他建议吗?

onItemClick()

1 个答案:

答案 0 :(得分:0)

你唯一能做的就是缩短手术时间。你可以这样做:

currentdb.Execute "UPDATE tblRCmDataSheetExtract SET Completed = 1 WHERE " & Replace(Forms!frmReplen!FrmReplenSheet.Form.Filter, "[FrmReplenSheet].", "")

或者当您从frmReplen中运行它时,您可以使用

currentdb.Execute "UPDATE tblRCmDataSheetExtract SET Completed = 1 WHERE " & Replace(Me.FrmReplenSheet.Form.Filter, "[FrmReplenSheet].", "")

或来自子表单“FrmReplenSheet”:

currentdb.Execute "UPDATE tblRCmDataSheetExtract SET Completed = 1 WHERE " & Replace(Me.Form.Filter, "[FrmReplenSheet].", "")

将整个过程放在一个命令中。如果你想要更好的可读性或更短的程序,这取决于你。