¿Es posible sacar en qué estación del año estamos a partir de una fecha?

Tengo un campo fecha y al lado quiero poner un campo llamado "estación" que automáticamente se rellene con la estación que corresponda a la fecha introducida.

Lo más fácil es poner un combo con las 4 y que se rellene manualmente, pero tengo curiosidad en saber si se puede o no hacer esto

1 respuesta

Respuesta
1

Sí se puede hacer lo que preguntas, y de una forma sencilla.

Pongamos por caso que tienes un formulario con un campo llamado txtFecha, y otro llamado txtEstacion.

Abres el formulario en ista Diseño, te colocas encima de txtFecha, click Derecho-> Propiedades-> Pestaña Eventos -> Después de actualizar, y pulsas el botón de los 3 puntos de la derecha de esa fila. Eliges Generador de código, y escribes esto:

Dim vMes As Integer
Dim vDia As Integer
If IsNull(Me.txtFecha) Then

Me.txtEstacion = vbNullString

Exit Sub

End If
vMes = Month(Me.txtFecha)
vDia = Day(Me.txtFecha)
Select Case vMes
Case 1, 2
Me.txtEstacion = "Invierno"
Case 3
If vDia < 21 Then
Me.txtEstacion = "Invierno"
Else
Me.txtEstacion = "Primavera"
End If
Case 4, 5
Me.txtEstacion = "Primavera"
Case 6
If vDia < 21 Then
Me.txtEstacion = "Primavera"
Else
Me.txtEstacion = "Verano"
End If
Case 7, 8
Me.txtEstacion = "Verano"
Case 9
If vDia < 21 Then
Me.txtEstacion = "Verano"
Else
Me.txtEstacion = "Otoño"
End If
Case 10, 11
Me.txtEstacion = "Otoño"
Case 12
If vDia < 21 Then
Me.txtEstacion = "Otoño"
Else
Me.txtEstacion = "Invierno"
End If
End Select

¡¡¡excelente!!! así te voy a puntuar por la rapidez en la contestación y por el resultado. Justo lo que buscaba. Gracias

Si no es mucho pedir ¿podrías, por favor, traducirme, así por encima, que significa el código??

el Dim, el integer, el Me... esas cosas

Gracias Sveinbjorn

Verás

Dim vMes as Integer -> Declara una variable llamada vMes de tipo número entero (integer). Los tipos de variables se corresponden con los tipos de datos que puedes elegir al crear un campo en una tabla: Texto->String, Entero->Integer, Entero LArgo->Long...

If..Then...Else...End If es un tipo de estructura condicional: si (if) se cumple la primera parte entonces (then) hace una cosa y si no (else), hace otra. Por ejemplo, el primer if, analiza si el campo txtFecha está vacío, en cuyo caso, deja txtEstacion en blanco y sale del procedimiento. Los otros If analizan el día del mes de la fecha, para saber que estación le corresponde en los meses que hay cambio de estación, como por ejemplo marzo.

Select Case...End Select, es otro tipo de condicional, se trata de analizar el valor de una variable (Select case vMes), y en función de sus valores, hacer una cosa u otra (Case 1,2 Case 3...)

El Me. Se usa para referirse a un control del propio formulario o informe, sería una forma abreviada de Form! NombreFormulario.

Si estás interesada en aprender un poco más de VBA, te recomiendo que visites la web del experto Neckkito (http://neckkito.siliconproject.com.ar/), donde encontrarás un manual de VBA y muchos ejemplos muy bien explicados, además de otras cosillas interesantes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas