ACCESS 在數(shù)據(jù)表中實現(xiàn)簡單計算

Private Sub 權(quán)重_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode <> vbKeyReturn And KeyCode <> vbKeyUp And KeyCode <> vbKeyDown And vbKeyTab Then Exit Sub 權(quán)重.Text = M1.CalculateExpression(權(quán)重.Text) End Sub '公共函數(shù) Function CalculateExpression(Expression As Variant) As Variant '當Expression為"=","+","-"號開頭時,計算它的表達式,并返回結(jié)果 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
為什么是鍵按下事件,而不是變更后事件呢?
因為如果你的字段設(shè)置為數(shù)字類型的話,你連數(shù)據(jù)驗證都過不了,也就沒辦法觸發(fā)代碼了.
延伸:
1.可以限制用戶值上限.比如當前庫存上限或者下限.比如庫存只有100個,當用戶輸入的值,或者表達式返回的結(jié)果超過100時,可以強制用戶最多只能輸入100
2.計算表達式的同時,可以把表達式寫入"備注"字段中.很多公司的送貨單都有要求備注件數(shù)與規(guī)格,比如送貨數(shù)量是100個,每件10個,共10件,那備注就是10*10.

浙公網(wǎng)安備 33010602011771號