我要把公式放入数据库,然后从数据库内取出公式,而现在要如何把这段公式转成一段VB代码来执行.
例如:我现在要计算 Text3.text 的值.我将其公式写成     Text3 = Text1 + Text2 / (Text4+Text5)我现在从数据库中提取出这段话,现在把这段话放在一个变量里面,然后再执行此"字符"请问各位高手怎么搞!!!!!

解决方案 »

  1.   

    使用Script Control
    http://perlchina.sun126.com/cgi-bin/ccb/topic_view.cgi?forum=5&article_id=0005060422170700&publishtime_id=0005060425024051&t=0&page=15
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  2.   

    好象VB是不可以的,VFP可以做到。
    VB只能對SQL語句做到這個功能。
    如果有誰做到了,我也來學習學習。
      

  3.   

    如果是数学的运算~~
    忽然想到一个变通的办法,既然是SQL的服务器,就转换成 sql 语句,然数据库服务器来做运算好了
      

  4.   

    不过如果你能确定的把那些控件名区别开来的话,你也可以这样做,就是把Text3 = Text1 + Text2 / (Text4+Text5)这个公式取出来后,把它变成窗体名(控件名)的形式,也就是这样的:form1(text3)=form1(text1)+form1(text2)/(form1(text4)+form1(text5)),因为你这里的text1,text2等等都是字符串,并不是代码。
      

  5.   

    你看到的考勤系統有可能不是用VB語言寫的,或者他的系統有自己的公式解釋規則在里面。
    比如:Text3 = Text1 + Text2 / (Text4+Text5),
    在代碼里面可以對每個text進行解釋,讓其有自己對應的意義。
      

  6.   

    好象用Script Control 可以搞定
      

  7.   

    Script Control  他是可以计算一串字符串,但是前提是在程序运行的前期就要给出字符串,但是如果是在程序运行过程中从数据库当中取出来的话就没有用了.
      

  8.   

    VFP可以,所以可不可以考慮永VFP寫個DLL之類的東西,然后在VB中調用呢?
      

  9.   

    这个在我看来是易如反掌,不过前提是要把TextBox定义为控件数组。
    由于时间问题,在下面只做一个演示讲解,这也算是抛砖引玉吧。例如计算:
    1/有以下控件(10个TextBox,1个Commandbutton,1个Script(VB自带)):Text(0)="0":           Text(1)="1"
    Text(2)="2":           Text(3)="3"
    Text(4)="4":           Text(5)="5"
    Text(6)="6":           Text(7)="7"
    Text(8)="8":           Text(9)="9"2/计算公式:
    Text(3) = Text(1) + Text(2) / (Text(4)+Text(5))
    Text(3) = Text(1) + Text(2) / (Text(4)+Text(5))*Text(8)3/计算公式替换:Option ExplicitPrivate Sub Command1_Click()
        JiSuan "Text(3) = Text(1) + Text(2) / (Text(4)+Text(5))"
        'JiSuan "Text(3) = Text(1) + Text(2) / (Text(4)+Text(5))*Text(8)"
    End SubPrivate Sub JiSuan(ByVal Gs As String)
        Dim DENLen As Long, lNext As Long
        Dim LeftID As String, Rpc As String
        Dim DENLeft As String, DENRight As String    DENLen = InStr(Gs, "=")
        If DENLen > 0 Then
            DENLeft = Left$(Gs, DENLen - 1)
            DENRight = Mid$(Gs, DENLen + 1)
            
            For lNext = 0 To 10
                If InStr(DENRight, "Text(" & lNext & ")") > 0 Then
                    Rpc = Text(lNext)
                    DENRight = Replace(DENRight, "Text(" & lNext & ")", Rpc)
                End If
            Next lNext
            LeftID = Trim$(Mid$(DENLeft, InStr(DENLeft, "(") + 1))
            '// ScriptControl1是一个控件 Microsoft Script Control 1.0
            Text(Val(Left(LeftID, Len(LeftID) - 1))) = ScriptControl1.Eval(DENRight)
        End If
    End Sub4/总结:
      以上只是计算Textbox内容的方法,如果还有其他控件要包括在计算之内,那代码就要相应更改。
      

  10.   

    Script Control绝对可以搞定这个问题
    不就是计算工资吗?那能有多少计算元素啊?
    给每个元素都分配一个字符
    如:工作日,工资系数,加班时间 分别用  X Y Z 表示
    然后组合公式,取实际值替换,再计算