Ayuda Con Access

Muy buenas, necesito hacer algo que no recuerdo muy bien como se hacia. Concretamente tengo una tabla con 3 campos, 2 de tipo fecha y uno de texto. De los dos de fecha, uno llamado Fecha Inspeccion, que se introduce manual pues es la fecha en la que se realizo la ultima revision, otro llamado proxima revision y por ultimo el tipo texto que se llama nivel inspeccion que puede contener 3 posibilidades, nivel A, nivel B y nivel C. Necesito lo siguiente:

Si Nivel =A--> Fecha Proxima Inspeccion Un año mas tarde a fecha ultima revision
Si Nivel =B--> Fecha Proxima Inspeccion 3 años mas tarde a fecha ultima revision
Si Nivel =C--> Fecha Proxima Inspeccion 6 años mas tarde a fecha ultima revision

No se si voy por buen camino pero lo estoy intentando con tres consultas de actualizacion. Uno cuyo criterio es que el campo Nivel sea A, pero no se que codigo he de ponerle al campo fecha proxima inspeccion para que se actualice a fecha ultima revision + 1.

Eso creando uno para nivel a, otro para b y otro para c.

No se si me explicado correctamente, espero que si.

Un saludo y muchisimas gracias de antemano
Primero aclarar que no soy muy amigo de Access, pero en mi empresa lo uso para prototipado rápido, así que muchas de las cosas que hago digamos que "sé hacerlas" en Access pero seguro que hay una solución mejor para ellas. Pero no tengo tiempo de investigar XD

Primero, si esa tabla es tal como dices, te faltaría una Clave Primaria. Pero bueno, me centro en lo que dices que tienes.

Para nivel de inspección te creas un combobox, con una lista A B C y que no se pueda poner nada fuera de lista. Le pones en propiedades - eventos - código.

Y el código del evento podría ser algo similar a leer la fecha de inspección, extraer el año y sumarle el número correspondiente. Más o menos, sin tener access delante, algo así.

Dim anyo As Integer
Dim fecha As String
anyo=Right(Me.FechaInspeccion.Value,4)      'obtenemos los  4 ultimos digitos de la fecha, es decir, el año si el formato es dd/mm/aaaa
fecha=Left(Me.FechaInspeccion.Value,6)       'nos quedamos con dd/mm/ de la fecha
if Me.NivelInspeccion.Text=A Then
anyo=anyo+1
end if
fecha=fecha+anyo  <-- concatenas y ya lo tienes

completa el if con el resto de posibilidades y ya. Igual tienes que convertir tipos

Igual hay una forma más fácil de hacerlo en plan fecha=fecha+00/00/0001 pero como yo ya tengo un montón de funciones implementadas similares a lo anterior, me es más rápido utilizar las propias que buscar si access lo implementa por sí mismo

(ahora que te leo me ha parecido entender que no utilizas formularios, actualizas todo directamente de las tablas. Si lo haces por formularios es más fácil porque te puedes centrar solamente en los datos que tienes que modificar, sin peligro de tocar lo que no debes,. Y la implementación es más sencilla.
SI lo quieres hacer directamente en las tablas imagino que lo suyo sería mediante triggers, pero ni sé si en Access se implementan igual que en un SGBD de verdad XD )

)
1 respuesta