VBA编程-创建递归过程-福哥
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


VBA编程-创建递归过程

发表时间:2022/11/3 7:50:10 评论(0) 浏览(1359)  评论 | 加入收藏 | 复制
   
摘 要:过程只有有限的空间量供变量使用。 过程每次调用自身时,都会有更多空间被占用。 调用自身的过程称为递归过程。 不断调用自身的递归过程最终会导致错误。
正 文:

过程只有有限的空间量供变量使用。 过程每次调用自身时,都会有更多空间被占用。 调用自身的过程称为递归过程。 不断调用自身的递归过程最终会导致错误。 例如:

VBA复制

Function RunOut(Maximum)

 RunOut = RunOut(Maximum)

End Function


当两个过程无限期地相互调用或者永远无法满足某个用于限制递归的条件时,此错误可能不太明显。 递归确实有它自己的用途。 例如,以下过程使用递归函数计算因子。

VBA复制

Function Factorial(N)

    If N <= 1 Then '已到达递归调用的结尾。

        Factorial = 1 '(N=0)所以返回结果

    Else '如果N>0,请再次调用Factorial。

        Factorial = Factorial(N - 1) * N

    End If

End Function


应测试递归过程以确保它不会太多次调用自身从而导致内存不足。 如果出现错误,请确保您的过程没有无限期地调用它自身。 随后,尝试通过以下方法节省内存:

·         消除不必要的变量。

·         使用除 Variant 之外的 数据类型

·         重新评估过程逻辑。 通常可以用嵌套循环代替递归。


Access软件网交流QQ群(群号:198465573)
 
 相关文章
【access小品】蜻蜓咬尾---多端点配线路径递归计算示例  【煮江品茶  2012/2/26】
【Access函数】列表文件递归  【亚伦·布朗  2012/8/30】
【SQL SERVER小品】跟踪追击--SQL SERVER递归查...  【煮江品茶  2015/4/30】
【Access小品】越俎代庖--递归函数示例,Access树控件制...  【煮江品茶  2015/6/4】
【SQL SERVER小品】内在联系与外在表现--解答对递归查询的...  【煮江品茶  2015/7/22】
用VB递归算法实现BOM展开的树型结构操作  【梁志强,谢菁  2017/4/14】
SQL 递归查询  【缪炜  2017/7/30】
Sql递归(用with 实现)  【MDZZ  2018/2/26】
常见问答
技术分类
相关资源
文章搜索
关于作者

福哥

文章分类

文章存档

友情链接