Consulta de actualización de datos access 2013

¿Las consultas de actualización de datos se ejecutan solas y siempre que funcione la base de datos?, ¿O hay que ejecutarlas manualmente?, en caso de que haya que ejecutarlas manualmente, ¿cómo se hace para que se ejecuten de forma automática siempre que se utilice la base de datos?

1 respuesta

Respuesta
1

Todas se ejecutan mediante un evento.. el evento puede ser abrirlas manualmente o puede ser al pulsar un botón, una imágen, pueden ejecutarse al abrir un formulario, etc... específicamente, me gustaría saber exactamente lo que necesitas ya que todo depende de eso.

Para ejecutarlas, puedes crear una macro que la llame a ejecución y asignarla a lo que quieras, un botón, una ventana, etc... como te digo, necesito saber exactamente el uso que le quieres dar, para poderte aconsejar mejor.

Hola Alexis ante todo muchas gracias por tu respuesta. Te comento un poco la aplicación que estoy armando. Se trata de una base de datos de taller de mantenimiento de extintores. Entre tantas, tengo una tabla y formulario llamadas "extintores" en donde el operario da de alta o modifica datos de extintores, y tengo otra tabla y formulario llamada "Reporte de trabajo Pruebas Hidráulicas" en donde el operario ingresa los datos referidos a las pruebas hidráulicas que le realiza al extintor. Estas dos tablas manejan datos de fechas, en la tabla extintores se ingresa "UltimaPH" que es la fecha que se le realizó la ultima prueba hidráulica al extintor, esta por lo general se ingresa por primera vez cuando llega el extintor al taller y se debe actualizar cada vez que se realiza una prueba hidráulica al extintor (según el tipo de extintor cada 5 años). La actualización de esta fecha la tengo que hacer con la fecha que se registra en la tabla "Reporte de trabajo Pruebas Hidráulicas", porque es este el formulario que se utiliza para realizar dicha prueba. O sea, en resumen, necesito actualizar la fecha de la tabla "extintores" con la fecha de la tabla "Reporte de trabajo Pruebas Hidráulicas", y que esta actualización la haga inmediatamente despues de guardar los datos ingresados. Espero que me hayas entendido y aguardo tu ayuda. Muchas gracias!!

Bien, lo que no me queda claro, es como llenas ese Reporte de trabajo. Normalmente, al menos yo, haría un formulario para guardar la información de reportes de trabajo en donde colocaría un botón llamado "Guardar datos", en ese botón podrías incluír tu consulta de actualización tomando como valor la fecha del reporte de trabajo asociándolo con el id (código único) del extintor en cuestión.

Puedes recoger estos datos con variables temporales (tempvars. Add "IdExtintor", me. CampoConIdExtintor.value y tempvars. Add "FechaUPH", me. FechaReporte. Value), lo que no sé, es que tanto sabes utlizar el vba para estos casos. ¿Podrías ponerle el sql que te tira la consulta de actualización?

Me había olvidado de explicarte esta parte, tengo el formulario de Reporte de Trabajo con el botón guardar. ¿Cómo sería el código vba para actualizar las fechas?

En ese caso el código sería así:

'-------------------------------------------------------------------------------------------------------------

'Quitamos las confirmaciones de access

Docmd. Setwarnings(false)

'Agregas las variables temporales

tempvars.add "idExtintor", me.NombreDelCampoConIdExtintor.value

tempvars.add "FechaUltima", me.CampoFechaDelReporte.value

'Ejecutas la actualización

Docmd. Openquery "NombreDeLaConsultaActualizacion"

'quitamos las variables temporales

Tempvars. Removeall

'restableces las confirmaciones

Docmd. Setwarnings(true)

'-------------------------------------------------------------------------------------------------------------

Ahora bien, debes modificar los campos a actualizar en tu consulta de actualización por el nombre de las variables temporales así

-----------------------------------------------------------------------------

Campo IdExtintor

Actualizar a:  [variables temporales]![IdExtintor]

-----------------------------------------------------------------------------

Campo Fecha

Actualizar a: [variables temporales]![FechaUltima]

Así le indicas a la consulta que recoja esos valores al momento de ejecutarse.

Buenísima la respuesta, la pruebo y en un rato te confirmo si me sirvió. Muchísimas gracias!

Bien... ya probé todo tal cual lo escribiste, me sale un error, me abre la pantalla de vba y aparece resaltado en amarillo docmd. Openquery "actualizarPH" (así llame a la consulta de actualización). Cuando posiciono el puntero en lo resaltado en amarillo me aparece el cartel: Me.UltimaPH.value = Nulo. ¿Cuál sera el error que cometí?

Supuestamente el campo UltimaPH está vacío... ¿ese es de la fecha verdad?.. intenta agregar la variable temporal de esta forma

Tempvars. Add "FechaUltima", formatdatetime(me. UltimaPH. Value)

Si no te funciona, puedes enviármelo a mi correo [email protected] y te lo devuelvo corregido.

Me sigue apareciendo el mismo error, me parece que me hice un matete de cosas, te explico devuelta:

El valor de

Tabla Extintores: campo "UltimaPH"

Hay que actualizarlo con el valor de

Tabla Reporte de trabajo Pruebas Hidráulicas: campo "Fecha"

Ultimo intento a ver si puedo corregir el error.

Disculpame mi ignorancia, no soy experta en programación jeje

Ahora me salio! Saque la relación con IdExtintor y funcionó perfecto, abrí la tabla Extintores y se actualizó! Otra cosita para agregarle y no molesto más, ¿qué le agrego al código para que después de hacer click en "Guardar" se ponga el formulario en blanco para ingresar otro registro?

Otro problemilla!!! no se guardo el registro de prueba hidraulica!!! si se actualizo la fecha pero no se guardo el registro en la tabla de Reporte de trabajo Pruebas Hidráulicas

Jajajaja.. ya me enredé...

1) Poner las casillas en blanco para guardar un nuevo reporte:

Para ello debes agregar al final de las ejecuciones de tu botón guardar un codigo como este:

me.campo1.value = ""

me.campo2.value = ""

me.campo3.value=""

Y así con todos los campos que quieras dejar vacíos. Pero insisto, no se como está el formulario de reportes. Por ejemplo, yo normalmente hago los formularios como si fueran formularios de visual basic, es decir, no vinculo el formulario a una tabla sino más bien inserto toda la información de los mismos por medio de variables temporales y consultas de inserción de datos. Otros, lo que hacen, es que crean un formulario con un origen de datos de una tabla y cada vez que generan un nuevo reporte tienen que generar un nuevo registro... (a mi parecer es mala idea hacer eso).

2) La Fecha: Exactamente no sé que hiciste jajaja.. por eso te dejo mi correo nuevamente, mándame la aplicación (si quieres una copia sin datos o sin todas las ventanas) y yo te lo corrijo de la mejor forma lo más pronto posible.

Hola Alexis, problema solucionado! Te comento lo que hice para que le sirva a otra persona que se encuentre con este problema.

El formulario es vinculado a una tabla, como yo no se bien programar, todos mis formularios los vincule a una tabla y manejo código vba para que haga tareas básicas.

Por otro lado, lo que me había pasado es que en el botón "Guardar" tenia colocada una macro por defecto cuando lo cree, al colocar el código que me habías pasado, se borro la macro, entonces no guardaba ni me dejaba el formulario en blanco para agregar un nuevo registro. Entonces lo que hice (después de investigar un poco más) fue agregar el siguiente código, seguido del que me enseñaste vos:

docmd.runcommand acCmdsaverecord

docmd.gotorecord acActiveDataObject,,acNewRec

msgbox "Registro Guardado",vbinformation,"PRUEBA HIDRÁULICA"

Bueno, despues de tantas vueltas por fin me quedó como yo queria.

Muchas gracias por tu atención y preocupación, tu ayuda me sirvió muchísimo y me enseño algo más de los tantos misterios que tiene Access.

Excelente.. ahora solamente califica la pregunta para que ya no se agreguen más comentarios y no quede como activa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas