找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
宇哥帮你零基础建设外贸独立站
宇哥淘宝虚拟类目-付费微信群
宇哥闲鱼3个月陪跑课
Access数据库-零基础入门课程
Access数据库-自用软件开发课程
Access数据库-即学即用课程
Access数据库-进销存课程
Access数据库-VBA入门课程
Access数据库-陪跑课程
查看: 1246|回复: 2

用VBA计算一元二次方程的代码分享(基于Access数据库)

[复制链接]

23

主题

3

回帖

187

积分

注册会员

积分
187
发表于 2024-1-31 11:24:31 | 显示全部楼层 |阅读模式


Access数据库平台是一个比较方便的编程平台,除了与Excel配合进行数据分析整理,还可以做VBA语言的开发平台。本案例的总体设计思路是用一个窗体控制数据输入和输出。自动化模式按照我的老套路,采用更改文本框自动计算的方式。
1.核心代码
本文的计算代码放在公共空间的子过程里即可。由于核心计算过程并不是需要数据变量的函数,因此无需变量,需要调用的时候直接调用过程即可。
  1. Dim strA As String, strB As String, strC As String '声明字符串变量
  2. Dim A As Double, B As Double, C As Double '声明双精度浮点数变量
  3. Dim delta As Double '声明双精度浮点数变量
  4.     strA = Val(Nz(txtA, 1)) '获取并转换文本框txtA、txtB、txtC的值
  5.     strB = Val(Nz(txtB, 1))
  6.     strC = Val(Nz(txtC, 1))
  7.     A = Val(strA): B = Val(strB): C = Val(strC) '将字符串值转换为双精度浮点数
  8.     delta = B ^ 2 - 4 * A * C '计算二次方程的判别式
  9. '判断判别式的值
  10. If delta >= 0 Then '如果判别式大于等于零,计算并赋值给根X1和X2
  11.     X1 = (-B + Sqr(delta)) / (2 * A)
  12.     X2 = (-B - Sqr(delta)) / (2 * A)
  13. Else '如果判别式小于零,将根的值设为"不存在实数根"
  14.     X1 = "不存在实数根"
  15.     X2 = "不存在实数根"
  16. End If
  17.     '将计算得到的根分别赋给文本框txtX1和txtX2
  18.     Me.txtX1.Value = X1
  19.     Me.txtX2.Value = X2
  20.     Me.Refresh '刷新表单
  21. End Sub</code></pre>
复制代码

核心代码主要的思路是判断实数根是否存在,同时需要注意防止误操作。核心代码用Public Sub的形式放在主代码界面即可,不需要单独存放在模块里。
2.调用代码
本案例的自动化方案,是给一元二次方程的三个系数设置三个文本框txtA、txtB和txtC,只要更改这三个文本框就立刻触动核心代码计算。
  1. Private Sub txtA_AfterUpdate()
  2. Call equation
  3. End Sub

  4. Private Sub txtA_Change()
  5. Call equation
  6. End Sub

  7. Private Sub txtB_AfterUpdate()
  8. Call equation
  9. End Sub

  10. Private Sub txtB_Change()
  11. Call equation
  12. End Sub

  13. Private Sub txtC_AfterUpdate()
  14. Call equation
  15. End Sub

  16. Private Sub txtC_Change()
  17. Call equation
  18. End Sub
复制代码

作者介绍:
宇哥副业是一名央企总部员工,电力工程师。
主业是一名编程培训讲师、电商从业者和电商讲师。
目前运营有3家淘宝店、6家闲鱼店、2家抖店、1家亚马逊(没生意),以及10多个自媒体平台和2个个人网站。
目前来看,全网学习办公软件和编程的女同学几乎没有不认识我的,但我更希望全网搞电商的女同学也都认识我。
现在宇哥做电商做培训还是比较顺的,而且主业还上班,目前一年到手的收入加起来有100来个。本来可以躺平,但是由于个人情绪一直不稳定、精神状态时好时坏,因此挺爱吐吐槽、码码字,挺愿意分享的。
我未来的打算是回老家做跨境,一边过退休生活,一边赚点躺着赚钱的生意。另外我计划每年写100万字不糊弄事的精品文章,包括宇哥的人生经验、做技术培训的经验、做电商的经验、做自媒体的经验,都分享给大家。
写作是为了流传后世,能帮助一些人最好。帮不上就当是给自己看了。
承蒙大家厚爱,很多人爱看。
谢谢大家。

115

主题

15

回帖

633

积分

管理员

积分
633
发表于 2024-1-31 11:30:54 | 显示全部楼层

115

主题

15

回帖

633

积分

管理员

积分
633
发表于 2024-1-31 11:37:22 | 显示全部楼层
目前处于测试阶段
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Access零基础
Access进销存
access开发
access陪跑
Access即学即用

QQ|小黑屋|宇哥编程论坛 ( 京ICP备2022024677号-2|京公网安备11011202100561号 )

GMT+8, 2024-12-23 02:43 , Processed in 0.087890 second(s), 23 queries .

Powered by 宇哥

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表