ACCESS 在資料表中實現簡單計算

一曲轻扬發表於2024-06-13

Private Sub 權重_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode <> vbKeyReturn And KeyCode <> vbKeyUp And KeyCode <> vbKeyDown And vbKeyTab Then Exit Sub    
    權重.Text = M1.CalculateExpression(權重.Text)
End Sub

'公共函式
Function CalculateExpression(Expression As Variant) As Variant   '當Expression為"=","+","-"號開頭時,計算它的表示式,並返回結果
    CalculateExpression = Expression
    Dim sE As String
    sE = Left(Expression, 1)
    If Not ("=+-" Like "*" & sE & "*") Then Exit Function
    Dim result As Variant
    On Error GoTo err
    Select Case sE
        Case "=", "+"
            result = Eval(MID(Expression, 2))
        Case "-"
            result = Eval(MID(Expression, 1))
    End Select
    
    CalculateExpression = result
    Exit Function
err:
    'Empty
End Function

為什麼是鍵按下事件,而不是變更後事件呢?

因為如果你的欄位設定為數字型別的話,你連資料驗證都過不了,也就沒辦法觸發程式碼了.

延伸:

  1.可以限制使用者值上限.比如當前庫存上限或者下限.比如庫存只有100個,當使用者輸入的值,或者表示式返回的結果超過100時,可以強制使用者最多隻能輸入100

  2.計算表示式的同時,可以把表示式寫入"備註"欄位中.很多公司的送貨單都有要求備註件數與規格,比如送貨數量是100個,每件10個,共10件,那備註就是10*10.

  

相關文章