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

时间:2019-03-22 20:35:03

标签: vba forms ms-access access-vba

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

  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

这是我调整数量之前的时间

This is before I adjust the qty

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

This is after I adjust the qty of only the second line

1 个答案:

答案 0 :(得分:0)

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

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