Access - cuadro de lista eliminar registro

 
Vista:

cuadro de lista eliminar registro

Publicado por Jacinto (1 intervención) el 18/06/2007 12:32:30
Hola a todos
Tengo una base de datos que contiene una tabla a a la que he llamdo alumnos
He creado un formulario en el que hago un listado de esos alumnos
dentro de ese formulario tengo un cuadro de lista que contiene los datos de los alumnos
Quisiera poder eliminar uno de los alumnos cuando lo selecciono pero no se como hacerlo
Gracias a todos
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

RE:cuadro de lista eliminar registro

Publicado por Enrique (1299 intervenciones) el 18/06/2007 17:32:12
Hola Jacinto:
En este link puedes descargarte un ejemplo que hace lo que necesitas, utilizando dos métodos diferentes (Con la librería de ADO y con la de DAO), aunque el resultado en ambos casos es el mismo.

http://es.geocities.com/ensolva/Descargas/Varios/BorrarCuadroLista.zip

Si usas Access 2000 o superior, la librería de ADO ya la tienes marcada por defecto en tu base de datos, la de DAO habría que marcarla en la Ventana Referencias. En este ejemlo estás las dos marcadas.

Fíjate sobre todo en el Procedimiento de Evento "Al hacer click" del botón Eliminar, en ambos Formularios.

Saludos
Enrique
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

RE:cuadro de lista eliminar registro

Publicado por Jacinto (8 intervenciones) el 18/06/2007 23:09:34
Hola Enrique
En primer lugar gracias por la contestación
He modificado el código para acoplarlo a mis datos y lo he puesto de la forma siguiente:

Private Sub cmdEliminarAlumno_Click()
Set rst = CurrentDb.OpenRecordset("Alumno", dbOpenDynaset)

rst.FindFirst "idAlumno='" & ccListadoAlumnos.ItemData(ccListadoAlumnos.ListIndex) & "'"

If Not rst.NoMatch Then
Dim mens As Integer
mens = MsgBox("¿ Confirma la eliminación ?", vbQuestion + vbYesNo + vbDefaultButton2, "Eliminar Alumno")
If mens = vbYes Then
rst.Delete
ccListadoAlumnos.Requery
Else
rst.Close: Set rst = Nothing
ccListadoAlumnos = 0
'Texto6.SetFocus
Exit Sub
End If
End If
rst.Close: Set rst = Nothing

End Sub

como ves es muy similar a lo que me has mandado pero me da un error de

Se ha producido un error "3464
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

RE:cuadro de lista eliminar registro

Publicado por jacinto (8 intervenciones) el 18/06/2007 23:12:16
Hola de nuevo
el error al que hacia referencia es

Se ha producido el error 3464 en t iempo de ejecución
No coinciden los tipos de datos en la expresión de criterios

Gracias de antemano por la ayuda prestada
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

RE:cuadro de lista eliminar registro

Publicado por Enrique (1299 intervenciones) el 19/06/2007 16:40:54
Jacinto, eso es porque el campo "idAlumno" en tu caso es de tipo Numérico o Autonumérico, en lugar de Texto como en mi ejemplo. Cambia la línea de rst:FinfFirst por esta:

rst.FindFirst "idAlumno=" & ccListadoAlumnos.ItemData(ccListadoAlumnos.ListIndex)

El campo IdAlumno debe ser el campo Indice del cuadro de Lista.

Saludos
Enrique
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

RE:cuadro de lista eliminar registro

Publicado por Enrique (1299 intervenciones) el 19/06/2007 16:47:10
Jacinto, cuando digo campo Indice del Cuadro de Lista, quiero realmente decir "Columna Dependiente" del Cuadro de Lista, aunque supongo que lo habrás deducido.

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

RE:cuadro de lista eliminar registro

Publicado por Jacinto (8 intervenciones) el 19/06/2007 17:55:38
Hola de nuevo Enrique y gracias por ayudarme

En cuanto al codigo que me has mandado si funciona pero no elimina el registro que tengo seleccionado sino el anterior es decir que si selecciono el idalumno=77 me elimina idalumno=76 o el que este mas cerca del id seleccionado

Gracias de antemano
Jacinto
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

RE:cuadro de lista eliminar registro

Publicado por Enrique (1299 intervenciones) el 19/06/2007 19:22:13
Eso es muy raro, Jacinto, debería de eliminar el registro cuyo Id es igual al campo Indice seleccionado en el cuadro Lista. Prueba con el otro formulario (Método ADO) que utiliza un sistema diferente de restringuir el registro a eliminar, a ver si te pasa lo mismo, ya que con DAO se usa FindFirst, que signfica "el primero que encuentre y que cumpla la condición" mientras que con ADO se restringe el Recordset a un solo registro y puede que éste te funcione bien.

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

RE:cuadro de lista eliminar registro

Publicado por Jacinto (8 intervenciones) el 20/06/2007 09:44:40
Hola Enrique y gracias de nuevo
He probado con ADO pero me sigue haciendo lo mismo. Lo que hace exactamente es eliminarme el registro que esta antes del que he seleccionado, sin importar que este ordenado por nombre o por id
Ayer te mande la base de datos a la dirección de correo que tienes aqui, si no te es mucha molestia lo puedes ver en ella
Un saludo
Jacinto
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

RE:cuadro de lista eliminar registro

Publicado por Enrique (1299 intervenciones) el 20/06/2007 15:15:40
Hola Jacinto:
La he recibido y en cuanto tenga un rato la miro a ver que se puede hacer. Te mantendré informado.

Saludos
Enrique
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