Access - Eliminar registro

 
Vista:
sin imagen de perfil

Eliminar registro

Publicado por anonymous (78 intervenciones) el 03/11/2017 15:31:19
Buenas tardes

Tengo la siguiente consulta. En la imagen que os adjunto, se observa un formulario distribuido en un control de pestañas. Cada pestaña tiene un cuadro de lista y mediante la reutilización de un código encontrado, he creado una tabla para mostrar los datos de mis oficinas (Dispongo de varios clientes).

Captura

He conseguido crear un botón para crear registros y que me los muestre en la tabla. La cuestión viene a la hora de eliminar un registro especifico.

He conseguido, mediante consultas en otros foros y en Google, montar este código:

CurrentDb.Execute "DELETE Oficina1.IdDlegacion FROM Oficina1 WHERE Oficina1.IdDlegacion"

El problema es que, al eliminar, elimina TODO el contenido de la tabla. Lo que necesito, y por el momento no he conseguido, es eliminar solamente el registro seleccionado (Por ejemplo Oficina 01). La idea es que dependiendo del ID que tenga, lo elimine.

Creo que se podría utilizar alguna instrucción como var o incluso algún tipo de carácter para indicar que lo elimine, pero por el momento no he dado con la llave exacta.

Espero que me puedan ayudar.
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
Imágen de perfil de jorge
Val: 1.039
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Eliminar registro

Publicado por jorge (304 intervenciones) el 03/11/2017 15:57:41
hola sandro Buenos dias te falta decirle algo hay en la consulta

deberia

ser

CurrentDb.Execute "DELETE Oficina1.IdDlegacion FROM Oficina1 WHERE Oficina1.IdDlegacion=?????"
el signo de interrogacion seria lo que te falta saludos.

sandroo
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

Eliminar registro

Publicado por anonymous (78 intervenciones) el 03/11/2017 16:07:49
Buenas Jorge,

He probado lo que has indicado pero salta un error, en este caso el error 3575 en tiempo de ejecución. Me indica "Error de sintaxis (Falta operador) en la expresión de consulta 'Oficina1.IdDlegacion=?????".

He añadido una comilla e incluso el &, pero el error sigue apareciendo. Tengo que indicarte, aunque no afecta al código ya que sigo indagando, que he introducido hace poco menos de un rato un MsgBox de confirmación para eliminar el registro.

Sigo indagando en tu solución a ver si encuentro el fallo.

Gracias.
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 jorge
Val: 1.039
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Eliminar registro

Publicado por jorge (304 intervenciones) el 03/11/2017 16:56:46
quizas nooo se supe explicarme bien sandro o no se la verdad.. pero buenoo guiate de este ejemplo
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

Eliminar registro

Publicado por anonymous (78 intervenciones) el 03/11/2017 17:14:12
Buenas Jorge,

Problema resuelto. El problema no era que no te explicaste bien, el problema era que la sentencia que usaste en este ejemplo era diferente a la que yo estaba utilizando. Es decir, en tu ejemplo me indicas que para eliminar un registro use DoCmd.RunSQL y en mi caso estaba usando el método CurrentDb.Execute .

Es más, el segundo método empleado por mí no era válido para este caso, ya que he intentado recrearlo reutilizando parte de tu código, pero no se elimina y sigue mostrando mensajes de error. En cambio, si utilizo el DoCmd me efectúa lo que deseo.
Otra cosa que desconocía era apuntar el comando hacia el cuadro de lista que he creado y marcar la columna para que efectué la eliminación.

Cosas de novatos como yo que cada día se acuestan con algo de aprendizaje nuevo...

Muchas gracias por todo Jorge.
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 Antonio
Val: 485
Plata
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Eliminar registro

Publicado por Antonio (171 intervenciones) el 03/11/2017 17:49:55
claro que si sirve para eliminar el currentdb.execute, yo tabajo siempre con ese.

Tu problema era por falta de conocimiento, que no sabias como tener el id de tu lista (en donde se muestran tus datos). Recomiendo que revises sus propiedades.

Lo correcto era :

1
CurrentDb.Execute "DELETE Oficina1.IdDlegacion FROM Oficina1 WHERE Oficina1.IdDlegacion = " &  me.NombreDeMiCuadrodeLista & "",dbFailonError

Ojo: En tu codigo solo quieres eliminar un campo de una fila y si lo tienes como requerido te mostrara error .Si quieres eliminar toda la fila(el registro completo) tienes que hacer lo siguiente.


1
CurrentDb.Execute "DELETE * FROM Oficina1 WHERE Oficina1.IdDlegacion = " &  me.NombreDeMiCuadrodeLista & "",dbFailonError
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

Eliminar registro

Publicado por anonymous (78 intervenciones) el 03/11/2017 19:11:23
Buenas tardes Antonio,

Muchas gracias por corregirme y por indicarme el error que cometía. Y no te voy a negar que me faltan conocimientos, ya que la programación no es lo mio pero, por intentarlo que no se diga...

Revisaré las propiedades y volveré a aplicarlo, está vez de la manera correcta.

Muchas gracias a ambos, a Jorge y a ti, por ayudarme con este problema.
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 Antonio
Val: 485
Plata
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Eliminar registro

Publicado por Antonio (171 intervenciones) el 03/11/2017 23:07:59
De nada.

No es regaño . A lo que me refería con falta de conocimiento, era que te falta investigar las propiedades de cada control para que lo manipules a tu antojo.

Si quieres puedes pasar por mi canal de Youtube. Es de ejercicios de Vba Access . El código esta en cada descripción de vídeo.Tal vez alguno te sirva(Tengo el ejemplo de eliminacion con Currentdb.Execurte)

https://www.youtube.com/channel/UCjS6fHbImLyqtrcdHvJLRgg
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

Eliminar registro

Publicado por anonymous (78 intervenciones) el 06/11/2017 09:30:06
Buenos días Antonio,

Muchas gracias. Me apunto tu canal y le echaré un vistazo. Seguro que acabo encontrando algo interesante para aplicar.
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
sin imagen de perfil

Eliminar registro

Publicado por anonymous (78 intervenciones) el 07/11/2017 12:49:12
Buenos días Antonio,

¿Se podría configurar el botón para que eliminase un registro independientemente de en que pestaña me encuentre?

Es decir, el botón lo he colocado dentro de la pestaña y con la ayuda de tu canal he conseguido que me elimine un registro, pero ahora quiero ver si sería posible colocar ese botón fuera de la pestaña y que hiciera diferentes funciones dependiendo de cada pestaña.

Si estoy en la pestaña Página 1 y quiero eliminar un registro, que lo elimine. Si en cambio estoy en la segunda pestaña, que borre el registro que esté seleccionado sin afectar a las otras páginas.

He estado realizando varias pruebas, parte del código que he intentando emplear es el siguiente (Solo pongo una parte)

Select Case Me.TabCtl0
Case Is = "Página1"
MsgBox("¿Está seguro que desea borrar esta delegación?", 1 + 32, "CGP ADECCO") = vbOKCancel
CurrentDb.Execute "DELETE * FROM Delegaciones01 WHERE Delegaciones01.IdDelegacion = " & Me.Lista0.Column(0) & "", dbFailOnError
Me.Elimino.Requery
Me.Refresh

Pero no funciona. Salta un error a la hora de aplicar el primer msgbox... Estoy consultando en tu canal a ver si veo algo así como en otros foros. Espero que me puedas ayudar.

Muchas gracias de antemano.
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