比如我在一个工资系统中要自定义一个公式:个人所得税=((应发合计-其它)-800)*0.2
那么,在程序中该如何来动态计算呢,当然公式是自定义的。或者说,在程序中如何对“((1000-100)-800)*0.2”这样一个字符串计算?

解决方案 »

  1.   

    你先把它放到数据库里面去,然后再用SQL语言进行计算,
      

  2.   


    你公式我已经实现了
    自己定义的一个函数
    Public Function GeReShuoDeShui(YingFaSum As Double, QiTa As Double) As Double
    GeReShuoDeShui = ((YingFaSum - QiTa) - 800) * 0.2
    End Function分别在Text1,Text2里的到你的 “应发合计” 和 “其它” 结果在 Text3 里Private Sub Command1_Click()Text3.Text = GeReShuoDeShui(Val(Text1.Text), Val(Text2.Text))
    End Sub你看看是不是你想要的
      

  3.   

    SQL="insert into 数据表 values(应发合计,其它,((应发合计-其它)-800)*0.2)"
    具体的要看你数据库的字段,这只是一个参照
      

  4.   

    使用Script Control,首先在工程中加入Microsoft Script Control控件,然后在工程中加入一个Class Module,在Class Module只加入一行代码:Public k1 As Integer然后在Form1中加入一个CommandButton按钮和一个TextBox控件,然后添加如下代码:Private Sub Command1_Click()
        Dim a(1)
        Dim shar As New Class1
        
        ScriptControl1.AddObject "sh", shar
        ScriptControl1.AddCode "Function Main(x)" & vbCrLf & "kk=" & Text1.Text & vbCrLf & "sh.k1 = kk " & vbCrLf & "End Function"    ScriptControl1.Run "main", a
        MsgBox "结果等于:" & shar.k1, , "运算结果"
    End Sub
    Private Sub Form_Load()
        Text1.Text = "3+2*1"
    End Sub点击Command1,程序就会运算Text1中的算式并显示结果。
      

  5.   

    来一个更简单的
    首先在工程中加入Microsoft Script Control控件
    然后在Form1中加入一个CommandButton按钮和一个TextBox控件,一个ScriptControl控件,然后添加如下代码
    Private Sub Command1_Click()
    MsgBox "结果等于:" & criptControl1.Eval(Text1.Text)
    End SubPrivate Sub Form_Load()
        Text1.Text = "3+2*1"
    End Sub
      

  6.   

    楼主是写到那里的公式阿?是excel吗?
      

  7.   

    真是一样,用一个SQL语句写,又快又好,用一张表专用来专计算公式,所以比较好!我以前也做过,不过是用ACCESS做的。