我正在做一些VBA开发,我发现创建SQL是完成所有事情(选择和更新)的非常有效的方法。 但我到了这个阶段,我的SQL语句包含复杂的开关和WHERE条件,我有另一个选择更新适当的记录。因此,我创建了这个SQL,我只需通过“CurrentDb.Execute strSQL”运行它,它就可以做到一切。
问题是,为什么我会声明ADODB.connections等,设置记录集,循环遍历它并逐个操作数据?
答案 0 :(得分:2)
为什么我要声明ADODB.connections等,设置记录集,循环遍历并逐个操作数据?
没理由。如果您可以在纯SQL中执行此操作,则可以坚持使用它。 但是在MS Access中,即使SQL在客户端上经常进行评估,因此从性能角度来看也没有太大区别。
如果您将SQL Server数据库用作后端,那么这将产生重大影响。
无论如何,如果你的SQL太复杂而无法理解(你以后需要阅读它!不是吗?),那么你真的可以将它拆分成更小的链和函数。
答案 1 :(得分:0)
我认为我没有在Access中看到过使用纯SQL来创建Rank甚至行号而不使用VBA函数的解决方案。
答案 2 :(得分:0)
当记录集很小且需求不断变化时,在VBA中使用记录集是有意义的。我认为,当复杂的决策或解析必须逐行进行并且涉及一个或两个表格/报告时,尤其如此。
如果需求已知并且SQL有效,则没有真正的理由进行转换。