Buscar valor máximo dentro de un grupo de celdas

Les comento que me sucede... Tengo una tabla en Access donde cada fila corresponde a una persona y por fila hay 30 columnas con distintas fechas. Por otro lado, tengo un formulario en el cual lo que busco es que, al presionar un botón, en una celda o cuadro de texto me tire la última fecha o la fecha más grande que se encuentre dentro de esas 30 columnas.

En otras palabras, necesito que me busque por persona cuál es la fecha más cercana a la actualidad dentro de los 30 valores que posee esa persona y me escriba esa fecha en un cuadro de texto al presionar un botón.

Mi problema más grande es que no sé como armar el código. ¿Qué método me conviene utilizar?

1 respuesta

Respuesta
1

Si gustas me regalas un correo para mandarte la respuesta aplicada en un ejemplo

Bueno de todos modos este es el código probado y comprobado y funciona

Campo1, campo2...

Son los campos que tienen las fecha como no las especificares en la pregunta las coloque de esa manera

Option Compare Database
Dim db As Database
Dim rs As Recordset
Sub llamar()
Set db = CurrentDb()
Rem donde id es el codigo del cliente o la perona a la que le deseas buscar la fecha
SQL = "Select Id,campo1,campo2,campo3,campo4,campo5,campo6,campo7,campo8,campo9,campo10,campo11,campo1,campo13,campo14,campo15,campo16,campo17,campo18,campo19,campo20,campo21,campo22,campo23,campo24,campo25,campo26,campo27,campo28,campo29,campo30 from tabla1 where id=" + TxtId
MsgBox SQL
Set rs = db.OpenRecordset(SQL)
If rs.BOF Or rs.EOF Then
MsgBox "no hay registros"
Exit Sub
Else
c1 = rs!campo1
c2 = rs!campo2
c3 = rs!campo3
c4 = rs!campo4
c5 = rs!campo5
c6 = rs!campo6
c7 = rs!campo7
c8 = rs!campo8
c9 = rs!campo9
c10 = rs!campo10
c11 = rs!campo11
c12 = rs!campo12
c13 = rs!campo13
c14 = rs!campo14
c15 = rs!campo15
c16 = rs!campo16
c17 = rs!campo17
c18 = rs!campo18
c19 = rs!campo19
c20 = rs!campo20
c21 = rs!campo21
c22 = rs!campo22
c23 = rs!campo23
c24 = rs!campo24
c25 = rs!campo25
c26 = rs!campo26
c27 = rs!campo27
c28 = rs!campo28
c29 = rs!campo29
c30 = rs!campo30
End If
TxtFecha = Mayor(c1, c2, c3, c4, c5, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30)

End Sub
Public Function Mayor(c1, c2, c3, c4, c5)
Dim Comp As Date
If Comp < c1 Then
Fm = c1
Comp = Fm
End If
If Comp < c2 Then
Fm = c2
Comp = c2
End If
If Comp < c3 Then
Fm = c3
Comp = c3
End If
If Comp < c4 Then
Fm = c4
Comp = c4
End If
If Comp < c5 Then
Fm = c5
Comp = c5
End If
If Comp < c6 Then
Fm = c6
Comp = c6
End If
If Comp < c7 Then
Fm = c7
Comp = c7
End If
If Comp < c8 Then
Fm = c8
Comp = c8
End If
If Comp < c9 Then
Fm = c9
Comp = c9
End If
If Comp < c10 Then
Fm = c10
Comp = c10
End If
If Comp < c11 Then
Fm = c11
Comp = Fm
End If
If Comp < c12 Then
Fm = c12
Comp = c12
End If
If Comp < c13 Then
Fm = c13
Comp = c13
End If
If Comp < c14 Then
Fm = c14
Comp = c14
End If
If Comp < c15 Then
Fm = c15
Comp = c15
End If
If Comp < c16 Then
Fm = c16
Comp = c16
End If
If Comp < c17 Then
Fm = c17
Comp = c17
End If
If Comp < c18 Then
Fm = c18
Comp = c18
End If
If Comp < c19 Then
Fm = c19
Comp = c19
End If
If Comp < c20 Then
Fm = c20
Comp = c20
End If
If Comp < c21 Then
Fm = c21
Comp = Fm
End If
If Comp < c22 Then
Fm = c22
Comp = c22
End If
If Comp < c23 Then
Fm = c23
Comp = c23
End If
If Comp < c24 Then
Fm = c24
Comp = c24
End If
If Comp < c25 Then
Fm = c25
Comp = c25
End If
If Comp < c26 Then
Fm = c26
Comp = c26
End If
If Comp < c27 Then
Fm = c27
Comp = c27
End If
If Comp < c28 Then
Fm = c28
Comp = c28
End If
If Comp < c29 Then
Fm = c29
Comp = c29
End If
If Comp < c30 Then
Fm = c30
Comp = c30
End If
Mayor = Fm

End Function

Private Sub BtnEnviar_Click()
Rem este es el boton donde se llama al procedimiento
llamar
End Sub

Ya te pase el la base de datos al correo con la solución a tu pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas