AYUDA SOBRE macro o código
hola. Buenas noches
Quisiera hacerte una consulta porque llevo ya semanas dándole vueltas a una base de datos y no se cual es la mejor solución.
te pongo en antecedentes. Tengo una base de datos para cargar notas a varios trabajadores:
el formulario que depende de una consulta como es normal dispone de los siguientes campos.
consulta: NOTAS_Y_COMPROSMISOS_GENERALES_Consulta
formulario: mismo nombre que la consulta.
campos: FECHA: ( con formato mmmm "de" aaaa); Nº_Operario (numero para reconocer el trabajador) y MEDIA_MENSUAL (que es el resultado de varios campos de media de valoración del trabajador).
mi intención es grabarle una nota a cada trabajador cada mes de manera que si intento grabarle dos notas al mismo trabajador el mismo mes me salga un mensaje de error diciendo que ya hay notas para ese trabajador y ese mes y me envíe a ese registro en cuestión: He puesto en el evento antes de actualizar el siguiente código:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim rs As DAO.Recordset, db As DAO.Database
Set db = CurrentDb()
Set rs = db.OpenRecordset("NOTAS_Y_
COMPROMISOS_GENERALES_Consulta", dbOpenDynaset)
With rs
.MoveLast: .MoveFirst
Do While Not .EOF
If Format(!FECHA, "mm/yyyy") = Format(Me.FECHA, "mm/yyyy") And !Nº_Operario = Me.Nº_Operario And Not IsNull(!MEDIA_MENSUAL) Then
MsgBox "ya tiene nota en la fecha " & !FECHA
Me.Undo
Cancel = True
End If
.MoveNext
Loop
End With
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
hay alguna posibilidad que me ponga que ya hay notas para dicho trabajador en vez de la fecha completa solamente el mes y el año al tiempo que me lleve a el registro en cuestión cuando le doy aceptar el error.............no se si me he explicado.
Lo estaba intentando hacer a través de una macro pero al final me han facilitado este código y no se que sera mejor un código o una macro.
gracias de antemano y un saludo.