Colorear subformulario continuo
21.09.2008
El siguiente ejemplo muestra como colorear un formulario continuo que se muestra a través de un subformulario en otro formulario. El código es relativamente sencillo y funciona perfectamente.
Descargar: Access 2000
Fuente: Vimipas
El siguiente código hay que incluirlo en un módulo, y a él se hará referencia desde el subformulario:
'Declaración de las variables utilizadas
Public ELFORMULARIO_s As String
Dim GCONTADOR_s As Long
'Función que numera los registros
Function frmContador_s(frm As SubForm) As Long
On Error GoTo frmContador_s_err
With frm.RecordsetClone
.Bookmark = frm.Bookmark
frmContador_s = 1 + .AbsolutePosition
End With
Exit Function
frmContador_s_err:
If Err = 3021 Then 'no hay registro activo
GCONTADOR_s = 0
End If
End Function
'Dependiendo de la operación realizada con el numerador del registro se le aplica un formato u otro
Public Function CALCULO_s(FREG_s As Control)
FREG_s.FormatConditions.Delete
FREG_s.BackColor = vbMagenta
FREG_s.FormatConditions.Add acExpression, , "(frmContador(" & ELFORMULARIO_s & ") Mod 2)=0"
FREG_s.FormatConditions(0).BackColor = vbCyan
End Function
Para utilizar el código se realizan las siguientes llamadas desde el subformulario:
'Desde el cuadro de texto que se sitúa al fondo y el cual se 'colorea' Private Sub FONDOREGISTRO_Enter() Me.IdMun.SetFocus End Sub 'Al abrir el subformulario Private Sub Form_Open(Cancel As Integer) ELFORMULARIO_s = "FORMS!Formulario1!EJEMPLO.Form" End Sub
Y en el evento al cargar hay que añadirle la función: =CALCULO_S([FONDOREGISTRO])
