Visual Basic - Orden SQL DELETE que no borra

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Orden SQL DELETE que no borra

Publicado por Alberto (115 intervenciones) el 08/03/2018 05:56:49
Tengo una BD con una tabla inmuebles y una columna inversor. Quiero suprimir todos los registros en que figuran como inversor AMG y MMM para lo que llevo alguna hora intentando lo siguiente (que no me funciona). La columna inversor es de sólo tres caracteres así que lo de Ltrim() creo que es algo ocioso, pero por si acaso...
Conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\Users\Public\VB6.0\lending.mdb"
Conn.Open
'Tabla inmuebles
sql = "DELETE * FROM inmuebles WHERE LTRIM(inversor) = """ & AMG & """ OR LTRIM(inversor) = """ & MMM & """ "
'sql = "DELETE * FROM inmuebles WHERE LTRIM(inversor) = ' AMG ' OR LTRIM(inversor) = ' MMM ' "
Conn.Execute (sql)
Conn.Close
También he puesto Conn.Execute(sql, adText...) no recuerdo exactamente
Aunque creo que está bien en la ConnectionString hacia la tabla inmuebles tengo puesto Persist Security Info=False
Como digo, no se borra nada. ¿Qué estoy haciendo mal? Muchas gracias.
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
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Orden SQL DELETE que no borra

Publicado por Alberto (115 intervenciones) el 08/03/2018 07:23:24
Aclaro que la base es Access 2007.
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
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Orden SQL DELETE que no borra

Publicado por Alberto (115 intervenciones) el 08/03/2018 09:36:27
En cuanto a la posibilidad de que no se pudiera borrar porque tuviera algún tipo de protección, he visto que si se puede borrar a mano no existe esta protección. Pues bien, a mano se puede borrar perfectamente. Igualmente dentro del programa en las opciones Añadir, Editar, Borrar, etc., se puede borrar perfectamente. Es la orden SQL de la consulta la que no se ejecuta.
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 Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Orden SQL DELETE que no borra

Publicado por Antoni Masana (558 intervenciones) el 08/03/2018 10:18:41
Tengo poco conocimiento de SQL pero se me ocurre una idea que puedes poner en practica que puede ayudarte

Añade esta línea y haber que sale:

1
2
3
4
5
6
'Tabla inmuebles
sql = "DELETE * FROM inmuebles WHERE LTRIM(inversor) = """ & AMG & """ OR LTRIM(inversor) = """ & MMM & """ "
'sql = "DELETE * FROM inmuebles WHERE LTRIM(inversor) = ' AMG ' OR LTRIM(inversor) = ' MMM ' "
MsgBox sql
Conn.Execute (sql)
Conn.Close

Solo asi podras ver si el texto de la secuencia SQL es correcta, que seguro que no lo es porque no borra y podrás ver dondá está el fallo.

Saludos.
\\//_
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
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Orden SQL DELETE que no borra

Publicado por Alberto (115 intervenciones) el 08/03/2018 10:39:11
Hola, Antoni: Se me reproduce exactamente la orden SQL que he escrito y no veo dónde está el error. Probaré lo contrario
sql =""DELETE * FROM inmuebles WHERE ISNOT inversor = """ & AMM & """ ".
Si tampoco funciona, como es de esperar, probaré con SELECT * FROM inmuebles WHERE inversor = AMG OR inversor = MMM"
Contarlos y hacer un ciclo FOR ...NEXT.. borrando registro a registro. Es una chapuza habiendo una orden concreta para mi caso pero si no hay más remedio...
Gracias y hasta luego.
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
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Orden SQL DELETE que no borra

Publicado por Alberto (115 intervenciones) el 08/03/2018 12:00:17
No sé qué misterio tiene aquí SQL porque ni me aparece el resultado de COUNT(*) (me aparece 0 o sea que las condiciones ni caso) ni ningún resultado de SQL. Ya se verá, porque sin esto no puedo seguir.
Hlgo,
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
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Orden SQL DELETE que no borra

Publicado por Alberto (115 intervenciones) el 08/03/2018 13:51:36
Solucionado. He borrado todo el procedimiento. He empezado de nuevo y funciona comme il faut. Gracias por la tabarra.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar