Access - Color ee campos en formularios

 
Vista:

Color ee campos en formularios

Publicado por JAVIER (1 intervención) el 10/09/2004 14:03:19
Buenos días, me gustaría que alguien me ayudase. Tengo un formulario anual con datos mensuales. ¿Cómo podrían aparecer los últimos registros del mes anterior en negrita y el resto normal? Muchas gracias. Javier
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Color ee campos en formularios

Publicado por Alejandro (4142 intervenciones) el 10/05/2023 16:49:53
Para lograr que los últimos registros del mes anterior aparezcan en negrita en tu formulario anual, puedes utilizar el evento "Al abrir" del formulario y código VBA para aplicar el formato condicional.

Aquí tienes un ejemplo de cómo hacerlo:

1. Abre el formulario en modo Diseño.
2. Haz clic con el botón derecho en el fondo del formulario y selecciona "Propiedades" en el menú contextual.
3. En la pestaña "Eventos", selecciona el evento "Al abrir" y haz clic en el botón de los tres puntos para abrir el editor de código.
4. En el editor de código, ingresa el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Private Sub Form_Open(Cancel As Integer)
    Dim rst As DAO.Recordset
    Dim strSQL As String
    Dim strMonth As String
    Dim strYear As String
    Dim dtLastMonth As Date
    Dim dtStart As Date
 
    ' Obtener el primer día del mes anterior
    dtLastMonth = DateAdd("m", -1, Date)
    dtStart = DateSerial(Year(dtLastMonth), Month(dtLastMonth), 1)
 
    ' Obtener el último día del mes anterior
    dtLastMonth = DateAdd("d", -1, dtStart)
 
    ' Obtener el mes y año del mes anterior
    strMonth = Format(dtLastMonth, "mmmm")
    strYear = Format(dtLastMonth, "yyyy")
 
    ' Construir la consulta para obtener los últimos registros del mes anterior
    strSQL = "SELECT * FROM YourTable WHERE Month(YourDateField) = " & Month(dtLastMonth) & " AND Year(YourDateField) = " & Year(dtLastMonth)
 
    ' Abrir el recordset con los últimos registros del mes anterior
    Set rst = CurrentDb.OpenRecordset(strSQL)
 
    ' Recorrer los registros y aplicar formato condicional
    Do Until rst.EOF
        ' Obtener el control correspondiente al registro actual
        Me.Controls("YourControlName").SetFocus
        ' Verificar si el registro está en el mes anterior y aplicar el formato
        If Me.YourDateField >= dtStart And Me.YourDateField <= dtLastMonth Then
            Me.YourControlName.FontBold = True ' Aplicar formato en negrita
        Else
            Me.YourControlName.FontBold = False ' Aplicar formato normal
        End If
        rst.MoveNext
    Loop
 
    rst.Close
    Set rst = Nothing
End Sub

Asegúrate de reemplazar "YourTable" con el nombre de tu tabla y "YourDateField" con el nombre del campo de fecha en tu tabla. También, reemplaza "YourControlName" con el nombre del control en tu formulario que deseas resaltar.

Guarda los cambios y cierra el editor de código. Ahora, cuando abras el formulario, los últimos registros del mes anterior se mostrarán en negrita, mientras que el resto de registros se mostrarán en formato normal.

Espero que esto te sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar