访问VBA以连续形式更改图像

问题描述 投票:1回答:1

我正在尝试创建收据表格,人们将确认他们是否已收到订单的全部数量。作为其中的一部分,我希望发生以下情况:

  1. 如果他们收到全部数量,则会出现绿色复选标记
  2. 如果他们收到部分数量,则会出现橙色三角形
  3. 如果他们没有收到任何物品,就会出现红色的x

为了实现这一点,我正在使用一个连续的表单,每种情况都有3个图像文件。我正在使用下面的代码更改数量时更改图像。问题是,当数量在1行改变时,符号会改变所有行。我也会发布图片。

有关如何解决此问题的任何想法?

我也对其他实现这个想法的方法持开放态度。

Private Sub FinalQTY_AfterUpdate()

If IsNull(Me.FinalQty) Then
    MsgBox "You must enter a quantity for this item"
    Me.FinalQty.SetFocus
    Exit Sub
Else
    LValue = Me.[FinalQty]
    If IsNumeric(LValue) = 0 Then
    Me.FinalQty = ""
    MsgBox "Qty must be a numeric value"
    Me.QTY.SetFocus
    Exit Sub
    End If
End If

Me.FinalTotalPrice = Me.FinalPrice * Me.FinalQty

If Me.FinalQty = 0 Then
    Me.Yes.Visible = False
    Me.Change.Visible = False
    Me.No.Visible = True
End If

If Me.FinalQty < Me.QTY Then
    Me.Yes.Visible = False
    Me.Change.Visible = True
    Me.No.Visible = False
End If

If Me.FinalQty = Me.QTY Then
    Me.Yes.Visible = True
    Me.Change.Visible = False
    Me.No.Visible = False
End If

End Sub

这是在我调整数量之前:

这是在我调整第二行的数量之后:

vba forms ms-access access-vba
1个回答
0
投票

由于连续表单显示的每个记录的格式都是从表单设计模板继承的,因此除了有效的条件格式规则或少数属性之外,对模板显示的所有记录的任何更改都将自动应用于表单显示的所有记录。通过详细信息部分的OnPaint事件更改。

一种可能的替代方法可能是使用OLE对象的数据类型向表中添加新字段,并使用AfterUpdate方法填充AppendChunk事件上的值,从包含与绿色刻度对应的三个记录的单独表中获取图像数据,橙色三角形和红十字图像。

© www.soinside.com 2019 - 2024. All rights reserved.