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。

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

私有子 Command47_Click()

将 V1 调暗为整数

将 V2 调暗为整数

如果 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 为整数)

将 KPI 调暗为整数

关键绩效指标 = (V1 / V2) * 100

结束功能

公共功能 KPI2(V1 为整数,V2 为整数)

将 KPI 调暗为整数

关键绩效指标 = 1 - (V1 / V2) * 100

结束功能

公共功能 KPI3(V1 为整数,V2 为整数)

将 KPI 调暗为整数

关键绩效指标 = V1 / V2

结束功能

公共功能 KPI4(V1 作为整数)

将 KPI 调暗为整数

关键绩效指标 = V1

结束功能

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

4

1 回答 1

0

我解决了:模型类:

{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}
于 2018-02-26T09:05:10.477 回答