Tengo un sistema de seguimiento de trabajos, y hay una consulta que devuelve los resultados de todos los trabajos que están vencidos. Tengo un formulario que muestra cada uno de estos trabajos uno por uno, y tiene dos botones (el trabajo se completó y el trabajo no se completó). No completado simplemente muestra el siguiente registro. No puedo encontrar una forma de acceder al registro actual para actualizar su contenido si se presiona el botón "Ha finalizado", lo más cercano que puedo obtener es el número largo que representa la posición de registros en el formulario.Cómo actualizar directamente un registro en una base de datos desde un número de formulario (Access 2007)
El VBA para obtener el índice del registro en el formulario es el siguiente.
Sub Jobcompleted(frm As Form)
Dim curr_rec_num As Long
curr_rec_num = frm.CurrentRecord
End Sub
Este es mi primer tiro en VBA, y después de una hora de búsqueda no puedo encontrar nada para resolver mi problema. ¿Voy por esto de una manera completamente equivocada? Trabajando en Microsoft Access 2007
Más Info Todas las mesas están normalizados
Tabla de vehículo: Contiene vehicle_id (pk), así como rego y etc modelo
cuadro de trabajos: Contiene job_id (pk), vehicle_id (fk) y otra información sobre lo que debe suceder, así como la próxima fecha de aparición, días entre cada ocurrencia del trabajo (todos los trabajos se repiten) y otra información
Tabla de historial de trabajos: Contiene job_history_id (pk), job_id (fk), fecha de finalización y comentarios
Cuando se pulsa el botón de validación de, se debe crear una nueva entrada en la tabla de historial de trabajo con la fecha actual, los comentarios y el ID de trabajo
Este es el script que estoy tratando de conseguir
de trabajoPrivate Sub Command29_Click()
Dim strSQL1 As String
Dim strSQL2 As String
Set Rs = CurrentRs
Set db = CurrentDb
strSQL1 = "INSERT INTO completed_jobs(JOB_ID, DATE_COMPLETED, COMMENTS) VALUES " & Rs!job.ID & ", " & Date
db.Execute strSQL1, dbFailOnError
strSQL2 = "UPDATE job SET JOB_NEXT_OCCURANCE = JOB_NEXT_OCCURANCE+JOB_RECURRANCE_RATE WHERE job.ID = Rs!job.ID"
db.Execute strSQL2, dbFailOnError
End Sub
Nota: La línea Set Rs = CurrentRs
es completamente incorrecta, creo que esto es lo que necesito averiguar. Esto se llama al presionar un botón
Estoy publicando una imagen que muestra el formulario (no continuo).
@HansUp, consigo lo que está diciendo, pero yo no creo que es bastante aplicable (que no proporcionan suficiente información de primera vez para que usted entienda creo)
@sarh Creo que este conjunto de registros que se están hablando es lo que necesito, sin embargo, no puedo entender cómo usarlo, ¿alguna pista?
@Matt Estoy 90% seguro de que estoy usando un formulario encuadernado (como dije, nuevo en Access, he estado mirando todo lo que las personas han sugerido y aprendiendo sobre la marcha). Por supuesto, hay una identificación para el trabajo (simplemente no se muestra, no es necesario que esté visible), pero ¿cómo accedería a esto para realizar una operación en él? SQL que pueda hacer, la integración con Access/VBA Soy nuevo en
"¿Voy por esto de una manera completamente equivocada?" Sospecho que puede ser, hecho correctamente, el acceso es fácil. ¿Es tu forma una forma continua? ¿Por qué no puedes tener acceso a los datos? ¿Es complicado el conjunto de registros por lo que no es actualizable? ¿Has diseñado tus tablas para incluir una identificación única? ¿Comenzó su trabajo leyendo sobre bases de datos relacionales? ¿Has visto alguna de las plantillas de acceso? – Fionnuala
Por cierto, si otra persona también vota su pregunta, usted tendrá la reputación suficiente para publicar una imagen de su formulario, lo que puede ser útil, de nuevo puede que no :) – Fionnuala
Voy a votar mejor por la posible carga de la imagen, también parece que está utilizando un formulario encuadernado y, por lo tanto, debería poder incluir un campo con el número único del trabajo (espero que tenga uno) y luego podría hacer referencia a este campo de texto en su SQL de actualización. –