Access VBA: eliminar los registros de una tabla que NO CUMPLAN una condición string

Agradecería ayuda para poder eliminar por código VBA los registros de una tabla que NO CUMPLAN una condición que se la paso por una variable string.

Esta es la situación:

A través de un formulario aplico un filtro a un reporte; después de validarlo (proceso interno relacionado con el programa que estoy haciendo) quiero aplicar el mismo filtro a la tabla origen... De manera que quiero tener una "foto" del reporte a través de la tabla (una vez limpia).

Pruebas fallidas:

1. De momento no soy capaz de jugar con consultas de eliminacion ("DELETE * FROM X WHERE") ya que la condición que quiero aplicar es la opuesta, WHERE NOT, pero esta condición puede estar contenida por OR, AND, Varios campos de filtrado, etc...

2. He tratado de abrirlo como DAO. Recordset para recorrer uno a uno todos los registros, pero la condición de filtro es una variable string que puede contener uno o varios filtros... Antes de desgranar el string me gustaría saber si lo puedo utilizar tal cual para realizar la eliminación.

Se agradece cualquier ayuda.

1 Respuesta

Respuesta
1

¿Podrías ponerme un ejemplo del filtro que aplicas al reporte?

A través de una serie de combobox entro a configurar un filtro determinado, puedo hacer mil combinaciones, pero un ejemplo podría ser el sigueinte siendo CampoX el valor del combo que me da el nombre de un Campo; y ValorX el valor del combo que me da el valor de la variable a filtrar.

El resultado de la función me da una variable string que contiene la cadena de texto resultado de aplicar los filtros.

"Campo1 Like 'valor1' AND Campo2 > valor2 AND (Campo3 = -1 OR Campo4 = 'valor4')"

Espero haberme explicado bien

Si este filtro te funciona, la clausura WHERE NOT debería darte exactamente lo que tu buscas siempre que pongas todo el filtro entre paréntesis para que el NOT se aplique al conjunto y no a la primera condición.

¿Lo has probado así?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas