Access - Buscar un valor

 
Vista:
sin imagen de perfil

Buscar un valor

Publicado por Sara (171 intervenciones) el 17/10/2013 19:03:58
Buenas.

Tengo un informe basado en una tabla con un botón de imprimir y otro de salir.
Qué código empleo, para que al pulsar en el botón de salir, me busque los valores que no tienen nada en un campo de cadena de la tabla?, y los registros que encuentre los borre?

Gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Buscar un valor

Publicado por Sara (171 intervenciones) el 19/10/2013 16:24:41
Muchas gracias Neckkito, ha salido a la primera.

El problema es que me confundí y los registro corresponden a un formulario cuyo "Origen del registro" es:

SELECT Oficio.*, Maestro.NUMDNI AS NUMDNI_Maestro, Maestro.NOMEMPRESA AS NUMEMPRESA_Maestro, Localidad.CODIGO_LOC

por lo que al ejecutar tu código (que funciona a las mil maravillas), cuando abro el formulario de oficios me aparecen los registros que he borrado y en algunos campos está escrito #eliminado#.

Cómo puedo solucionar el problema?

Gracias y perdona las molestias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Buscar un valor

Publicado por Neckkito (1157 intervenciones) el 19/10/2013 17:54:19
Hola!

El problema se te produce por el refresco de los datos. Es difícil decirte exactamente cómo debes operar porque no sé como tienes estructurado tu sistema.

Te pongo un ejemplo: tenemos un formulario continuo (varios elementos) con un botón que elimina registros que cumplan una condición. Ejecutamos el código que te indiqué y en el formulario continuo te aparecerá #Eliminado para aquellos registros que han sido borrados.

En este caso, ni siquiera un me.refresh funciona porque el formulario no "vuelve a leer" los datos de la tabla.

Una solución sería forzar el "releído" de datos, así:

...
Private Sub...
docmd.setwarnings false
docmd.runsql("DELETE FROM NombreTabla WHERE isnull(nombrecampo)")
docmd.setwarnings true
me.requery
End sub
....

Otra solución, si lo anterior no funciona bien, sería recargar el formulario, cerrándolo y volviéndolo a abrir, así:

...
Private Sub...
docmd.setwarnings false
docmd.runsql("DELETE FROM NombreTabla WHERE isnull(nombrecampo)")
docmd.setwarnings true
docmd.close acform, me.name
docmd.openform "NombreForm"
End sub
...

Con esto el form ya lee los datos de la tabla y, lógicamente, no te muestra los eliminados, pues ya no existen.

A ver si con estas pistas puedes encontrar una solución.

Saludos,

Neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Buscar un valor

Publicado por Sara (171 intervenciones) el 21/10/2013 06:49:17
Gracias Neckkito, voy a probarlo y te comento.

No se que haría sin este foro y alguno de ustedes.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Buscar un valor

Publicado por Sara (171 intervenciones) el 21/10/2013 15:53:43
Muchas gracias Neckkito.
Perfecto, solo con poner la línea "me.requery" ha bastado.

Un saludo.

Una preguntita: Tengo que hacer escritos a clientes de esta base de datos de acces que estoy haciendo (con vuestra ayuda). Cómo me aconsejarías llevar a cabo el proceso?. Yo antes tenía esto mismo en Lotus Approach, y a través de un formulario imprimía los escritos. Pero si los escritos necesitaban algún cambio, no servía el formulario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Buscar un valor

Publicado por Neckkito (1157 intervenciones) el 21/10/2013 17:37:59
Hola!

Sin saber exactamente qué quieres hacer es difícil darte una solución. Hay varias maneras:

- Para escritos estándar utiliza un informe, donde cada página sea un registro (una página - un destinatario). Basas ese informe sobre una consulta que te devuelva los destinatarios que quieres y listo.

- Puedes utilizar el sistema de combinar correspondencia con Word. Puedes buscar en Internet y en la propia ayuda del Word cómo funciona.

- Para algo más "especial" puedes utilizar marcadores en Word y pasar la información a marcadores. Más o menos sería lo que hace este ejemplo: http://goo.gl/iFzBiP

Y si hay algún sistema más, pues o no me viene a la cabeza o lo desconozco.

Saludos,

Neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Oficios con Word

Publicado por Sara (171 intervenciones) el 23/10/2013 15:23:35
Muchas gracias Neckkito.
Probaré las tres opciones para ver cual me interesa más. Aunque creo que la última opción es la que más de acerca a lo que quiero. El problema es que estudiando el código, y con mis conocimientos. parece un poco complejo.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Oficios con Word

Publicado por Neckkito (1157 intervenciones) el 23/10/2013 15:30:41
Hola!

Lo único que puedo recomendarte es una relación inversa: cuanto más complejo te parezca el código más poco a poco lo tienes que analizar e implementar.

Si le "pillas el tranquillo" no es tan difícil

Saludos,

Neckkito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Oficios con Word

Publicado por Sara (171 intervenciones) el 23/10/2013 15:55:00
Gracias, ya te comentaré.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar