Hello

I am creating a form that will display certain objects as visible if they match with the current record.
For example, if the value is 5, then 5 images will show.

This work fine in form view, but when I try to print (or print preview), the visible settings only match the first form (so everything shows).

Is there a way of forcing the print preview to execute code?

This is the code I need it to call

Private Sub Form_Current()Dim k As Integer


Call img_select
'turn meter
Call tm_sel(tm)


'power meter
If [card number] = 19 Then ' dh and mj
    If IsNull([pm]) Then
        Call PM_sel(5, True)
    Else
        Call PM_sel([pm])
    End If
ElseIf [card number] = 17 Then ' bp
    For k = 0 To 4
        Me.Controls("pm" & k).Visible = True
        Me.Controls("pm" & k & "l").Visible = True
    Next k
    Me.Controls("pm" & 5).Visible = True
    Me.Controls("pm" & 5 & "l").Visible = True
    Me.Controls("pm" & 5 & "l").Caption = "X"
Else
    Me.Controls("pm" & 5 & "l").Caption = 5
    Call PM_sel(pm)
End If


'health meter
If [card number] = 24 Then
    Call HM_sel(12)
Else
    Call HM_sel(hm)
End If






Select Case [Type]
    Case "Control": [Detail].BackColor = RGB(222, 235, 247)
    Case "Leader": [Detail].BackColor = RGB(255, 242, 204)
    Case "Power": [Detail].BackColor = RGB(225, 63, 51)
    Case "Special": [Detail].BackColor = RGB(173, 135, 249)
    Case "Special / Control": [Detail].BackColor = vbBlue + vbRed + vbBlue
    Case "Special / Power": [Detail].BackColor = vbBlue + vbRed + vbRed
    Case "Troop": [Detail].BackColor = RGB(226, 240, 217)
End Select




If IsNull([pa]) Then
    [pa].Visible = False
    [pal].Visible = False
    [pabk].Visible = False
Else
    [pa].Visible = True
    [pal].Visible = True
    [pabk].Visible = True
End If


If IsNull([la]) Then
    [la].Visible = False
    [lal].Visible = False
    [labk].Visible = False
Else
    [la].Visible = True
    [lal].Visible = True
    [labk].Visible = True
End If


If IsNull([Notes]) Then
    [Notes].Visible = False
Else
    [Notes].Visible = True
End If


End Sub
This calls variations on this code

Function tm_sel(tm_Val As Integer)Dim i As Integer
i = 0


For i = 0 To 6
    Me.Controls("tm" & i).Visible = False
    Me.Controls("tm" & i & "l").Visible = False
Next i


i = 0
For i = 0 To tm_Val
    Me.Controls("tm" & i).Visible = True
    Me.Controls("tm" & i & "l").Visible = True
Next i


[tmMax].Caption = "(When this reaches " & tm_Val & ", Reset to 0 after activation)"


End Function