访问:修改数据表子表单列中的值

时间:2018-08-16 12:05:15

标签: ms-access access-vba

我有一张表,其中包含以下字段:ID,序列号,容量,准确性。

我根据序列号在数据表子窗体中显示1到4条记录。

现在我要显示每个容量

  • 超过5000千克(除以1000,然后加上“ t”)
  • 以公斤为单位在5000kg和0.5kg之间(保留数字并添加“ kg”)
  • 0.5千克以下(乘以1000并加上“ g”)

但是,我希望所有值都保留在表中的kg中。所以我只想在显示它们时更改它。

我尝试的最后一件事是:我添加了一个名为txt_Capaciteit的额外列,将其用作存储数据的“主”列,然后在一个空列中添加“ kg”。但这会将Capaciteit中的所有列更改为在txt_Capaciteit列中选择的列。

Me.Capaciteit = Me.txt_Capaciteit & " kg"

修改
我还尝试使用表达式作为控制源。通过使用两个if语句,然后相除或相乘,最后加上“ t”,“ kg或” g“,即使这样做有效,也使表单非常缓慢且缓慢(加载1-2个字段需要1-2秒)

有人可以告诉我我做错了什么吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

创建如下函数:

Public Function FormatWeight(ByVal Value As Currency) As String

    Dim Result  As String

    Select Case Value
        Case Is < 0.5
            Result = Format(Value * 1000, "0 \g")
        Case Is < 5000
            Result = Format(Value, "0.00 \k\g")
        Case Else
            Result = Format(Value / 1000, "0.000 \t")
    End Select

    FormatWeight = Result

End Function

然后,要在表格中显示千克的重量,请在此文本框中使用 ControlSource

=FormatWeight([YourWeigthField])