Ayúdenme, por favor
Publicado por Vero (106 intervenciones) el 24/05/2002 00:39:42
Hola, me gustaría saber cómo puedo borrar los registros duplicados de una tabla con una sentencia SQL en Visual Basic. Aquí les muestro el código que utilizo:
SELECT DISTINCTROW Campo1, Fecha, Campo3, Campo4, Campo5, Count(Campo1)
FROM Tabla
WHERE Fecha>= #' & Format(frmFecha.mskFecha.Text, "dd/mm/yy") & "#"
GROUP BY Campo1, Fecha, Campo3, Campo4, Campo5
HAVING Count(Campo1)>1;
ORDER BY Fecha DESC;
Set datTabla.Recordset=frmForm.datTabla.Database.Openrecordset(cSQL,dbOpenDynaset)
Hasta aquí bien, pero ahora me gustaría poder borrarlos en un dbgrid o en cajas de texto enlazadas a la base de datos. En la rejilla me dice que la base de datos es de solo lectura, y he revisado todas las propiedades y no están para lectura.
También había pensado en borrarlos de una vez con otra sentencia SQL, pero en vez de borrármelos los repetidos, me borra toda la tabla. Esta es la sentencia:
DELETE *
FROM Tabla
WHERE EXISTS (
SELECT DISTINCTROW Campo1, Fecha, Campo3, Campo4, Campo5, Count(Campo1)
FROM Tabla
WHERE Fecha>= #' & Format(frmFecha.mskFecha.Text, "dd/mm/yy") & "#"
GROUP BY Campo1, Fecha, Campo3, Campo4, Campo5
HAVING Count(Campo1)>1;
ORDER BY Fecha DESC);
Si alguien me pudiera ayudar, se lo agradecería. Muchas gracias.
SELECT DISTINCTROW Campo1, Fecha, Campo3, Campo4, Campo5, Count(Campo1)
FROM Tabla
WHERE Fecha>= #' & Format(frmFecha.mskFecha.Text, "dd/mm/yy") & "#"
GROUP BY Campo1, Fecha, Campo3, Campo4, Campo5
HAVING Count(Campo1)>1;
ORDER BY Fecha DESC;
Set datTabla.Recordset=frmForm.datTabla.Database.Openrecordset(cSQL,dbOpenDynaset)
Hasta aquí bien, pero ahora me gustaría poder borrarlos en un dbgrid o en cajas de texto enlazadas a la base de datos. En la rejilla me dice que la base de datos es de solo lectura, y he revisado todas las propiedades y no están para lectura.
También había pensado en borrarlos de una vez con otra sentencia SQL, pero en vez de borrármelos los repetidos, me borra toda la tabla. Esta es la sentencia:
DELETE *
FROM Tabla
WHERE EXISTS (
SELECT DISTINCTROW Campo1, Fecha, Campo3, Campo4, Campo5, Count(Campo1)
FROM Tabla
WHERE Fecha>= #' & Format(frmFecha.mskFecha.Text, "dd/mm/yy") & "#"
GROUP BY Campo1, Fecha, Campo3, Campo4, Campo5
HAVING Count(Campo1)>1;
ORDER BY Fecha DESC);
Si alguien me pudiera ayudar, se lo agradecería. Muchas gracias.
Valora esta pregunta


0