首页 文章

在访问中对不同的记录执行不同的公式

提问于
浏览
0

我正在创建一个数据库来跟踪具有前端的KPI,以便特定用户输入这些KPI的值 .

我创建了表格和属性以及表单,使用户能够访问自己的KPI并输入其值 .

每个用户根据选定的流程选择一个KPI,并且每个KPI是1或2个变量和一个计算KPI的公式,用户输入一个或两个变量的整数(如果有两个变量,则组合框显示用户或只有一个)

目前,我正在寻找一种计算KPI值的方法,以便我可以让用户读取它并验证在同一会话中输入的变量整数 .

我考虑过函数和VBA,但我是VBA的新手,需要指导 . 我不知道如何开始,但我需要做的是确定KPI以获得公式,获取相关变量并确定哪个是V1,哪个是V2(变量表中的属性Var_No标识输入的变量是否为V1或V2),所以我可以执行有限的公式 . 我的公式:

1-(V1 / V2)* 100

2- 1-(V1 / V2)* 100

3- V1

4- V1 / V2 .

所以,尝试第二种方法我有这个代码:

Private Sub Command47_Click()

Dim V1 As Integer

Dim V2 As Integer

如果Me.Combo44.Value =(V1 / V2)* 100那么

Private Sub KPI1()

Dim KPI As Integer

KPI = KPI1()

万一

如果Me.Combo44 =“1-(V1 / V2)* 100”那么

Private Sub KPI2()

Dim KPI As Integer

KPI = KPI2()

万一

如果Me.Combo44 =“V1 / V2”那么

Private Sub KPI3()

Dim KPI As Integer

KPI = KPI3()

万一

如果Me.Combo44 =“V1”那么

Private Sub KPI4()

Dim KPI As Integer

KPI = KPI4()

万一

结束子

和模块:

公共函数KPI1(V1为整数,V2为整数)

Dim KPI As Integer

KPI =(V1 / V2)* 100

结束功能

公共函数KPI2(V1为整数,V2为整数)

Dim KPI As Integer

KPI = 1 - (V1 / V2)* 100

结束功能

公共函数KPI3(V1为整数,V2为整数)

Dim KPI As Integer

KPI = V1 / V2

结束功能

公共函数KPI4(V1为整数)

Dim KPI As Integer

KPI = V1

结束功能

但是,当我尝试编译代码的第一部分时,会显示错误 .

1 回答

  • 0

    我解决了这个问题:Model Class:

    {Option Compare Database
    
    Option Explicit
    
    Public V1 As Double
    Public V2 As Double
    Public DataType As Variant
    
    
    Public Function GetTotal() As Long
        GetTotal = (V1 / V2) * 100
    End Function
    
    Public Function GetTotal1() As Long
        GetTotal1 = 1 - (V1 / V2) * 100
    End Function
    
    Public Function GetTotal2() As Long
        GetTotal2 = V1 / V2
    End Function
    Public Function GetTotal3() As Long
        GetTotal3 = V1
    End Function
    }
    

    点击

    {Private Sub btnCalculate_Click()
    If Me.KPIF.Value = "(V1/V2)*100" Then
    
    Dim calcData As clsCalcData
        Dim total As Long
    
        Set calcData = New clsCalcData
        calcData.V1 = Me.Variable1.Value
        calcData.V2 = Me.Variable2.Value
    
        total = calcData.GetTotal()
        MsgBox (total)
        End If
        If Me.KPIF.Value = "1-(V1/V2)*100" Then
        Dim calcData1 As clsCalcData
        Dim total1 As Long
    
        Set calcData1 = New clsCalcData
        calcData1.V1 = Me.Variable1.Value
        calcData1.V2 = Me.Variable2.Value
    
        total1 = calcData1.GetTotal1()
        MsgBox (total1)
        End If
        If Me.KPIF.Value = "V1/V2" Then
        Dim calcData2 As clsCalcData
        Dim total2 As Long
    
        Set calcData2 = New clsCalcData
        calcData2.V1 = Me.Variable1.Value
        calcData2.V2 = Me.Variable2.Value
    
        total2 = calcData2.GetTotal2()
        MsgBox (total2)
        End If
            If Me.KPIF.Value = "V1" Then
        Dim calcData3 As clsCalcData
        Dim total3 As Long
    
        Set calcData3 = New clsCalcData
        calcData3.V1 = Me.Variable1.Value
    
        total3 = calcData3.GetTotal3()
        MsgBox (total3)
        End If
    End Sub}
    

相关问题