Access - ENRIQUE "Lista"

 
Vista:

ENRIQUE "Lista"

Publicado por Andres Cadavid (10 intervenciones) el 08/05/2006 17:25:54
Hola Enrique: Probé nuevamente lo que me dijiste de verificar en el evento click del cuadro de lista que estuviera "Procedimiento de Evento" y si esta. Lo que me esta haciendo cuando selecciono el elemento que quiero borrar del cuadro de lista (ponerlo negrito) y doy clic en el botón BORRAR, es deseleccionarlo (se le quita lo negrito) y el dato no se me borra, quedá ahi??

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

RE:ENRIQUE

Publicado por Andres Cadavid (10 intervenciones) el 08/05/2006 17:43:49
Otra pregunta Enrique: Como puedo almacenar los datos que quedaron en este cuadro de lista en una tabla, es que en Origen del control yo ubico el campo en el que quiero almacenar, pero solo me almacena el primer dato que tengo en este cuadro de lista. Muchas 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

RE:ENRIQUE

Publicado por Enrique (1299 intervenciones) el 08/05/2006 17:55:18
Hola Andres:
Ahora ya parece que nos vamos entendiendo. De eso se trataba, de quitar la selección de todas las Filas seleccionadas, no de eliminarlas. Son dos cosas distintas, si lo que tu necesitas es eliminarlas del cuadro de lista ya es algo más complicado porque los ListBox (cuadros de lista) que usa Access no tienen la propiedad Removeitems, esta propiedad si la tiene el Control ListView. De todas formas se puede hacer, creo que tengo algún ejemplo por alguna parte que elimina los Items de los cuadros de lista, voy a mirar a ver si lo encuentro y te lo envío.
Una pregunta ¿quieres solamente eliminar la Fila (el Item) del cuadro de lista o además necesitas eliminarlo de la Tabla que hace de Origen de la Fila ?
Mientras tanto voy a ir mirando entre los cientos de mdb's que tengo a ver que encuentro.
Hasta pronto y 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:ENRIQUE

Publicado por Andres (10 intervenciones) el 08/05/2006 18:19:10
Hola Enrique:
Solamente necesito eliminar la fila del cuadro de lista. Te agradesco mucho tu ayuda. Ahh y si me puedes ayudar con la otra cosita muchas gracias tambíen.
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:ENRIQUE

Publicado por delrio (38 intervenciones) el 08/05/2006 20:15:07
No sé en otras versiones, pero en Access 2003 los ListBox sí tienen la propiedad RemoveItem.

Para borrar el item seleccionado en un listbox, deberías poner este código en un botón, o donde quieras:

Me.ListBox1.RemoveItem (Me.ListBox1.ListIndex)

También se puede obtener una matriz de varios items seleccionados, para borrar más de uno.

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:ENRIQUE

Publicado por Andres (10 intervenciones) el 08/05/2006 20:28:16
Hola delrio: Muchas gracias por tu ayuda, pero yo estoy trabajando en la V. 2000 y esta no tiene esta propiedad. Yo también estaba buscando por este lado y este no la tiene.
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:ENRIQUE

Publicado por Enrique (1299 intervenciones) el 08/05/2006 20:31:44
Hola Andrés:
En esta mdb que puedes descargar pulsando el enlace de arriba, tienes las dos cosas que necesitas: eliminar Filas y Grabar lo que quede en una Tabla. Mirala y si tienes alguna duda la comentas.

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:ENRIQUE

Publicado por Andres (10 intervenciones) el 08/05/2006 22:35:36
Hola Enrique:
Ya probé lo de borrar fila que me facilitaste y en ese borra son los datos de la tabla. Cuando lo probé en el mio, coloque este codigo:

Private Sub btnBorrar1_Click()

For Each Fila In lstSolucionSwTotal.ItemsSelected
DoCmd.RunSQL "DELETE * FROM tblSolucionSw WHERE strnombresolucion='" & lstSolucionSwTotal.ItemData(Fila) & "'"
lstSolucionSwTotal.Selected(Fila) = False
Next
lstSolucionSwTotal.Requery

End Sub

Este codigo es el que me proporcionaste, pero en el mio no funciona, no siquiera me borra.

Y en el de guardar, estoy confundido por que yo se que mi lista tiene 3 columnas pero solo se visualizan 1 y ese es la que necesito guardar.
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:ENRIQUE

Publicado por Enrique (1299 intervenciones) el 09/05/2006 19:45:19
Andres:
La parte de borrar, efectivamente borra de la tabla, se puede hacer que solamente elimine la fila sin borrar en la tabla pero eso es más complicado y veo que tu no tienes mucha práctica con VBA de momento. Los ListBox de Access 2000 no tienen RemoveItems (Fede indica que el 2002 si lo tiene, pero a nosotros eso no nos sirve).

La parte de guardar es más simple, si tu solo tienes una columna visible en tu Cuadro de Lista, usa el Evento del Ejemplo "ConUnaColumna", este:

Private Sub Grabar_Click()
Dim Graba As DAO.Recordset, K As Integer
Set Graba = CurrentDb.OpenRecordset("TablaDestino", dbOpenDynaset)
For K = 0 To lstSolucionSwTotal.ListCount - 1
Graba.AddNew
Graba.Fields("NombreCampoTabla") = lstSolucionSwTotal.ItemData(K)
Graba.Update
Next K
Graba.Close: Set Graba = Nothing ' Esto se le olvidó ponerlo.
End Sub

La línea de código:
Graba.Fields("NombreCampoTabla") = lstSolucionSwTotal.ItemData(K)
va recorriendo las Filas del ListBox y va grabando en el campo de cada registro de la tabla, el dato de la única columna visible en el mismo, al estar dentro de un bucle For Next.

Asegurate de marcar la Referencia: Microsoft DAO 3.6 Object Library en la ventana Referencias de tu mdb.

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:ENRIQUE

Publicado por Andres (10 intervenciones) el 09/05/2006 21:32:54
Enrique:
Efectivamente, soy nuevo en esto y además de eso empírico. Probé lo de lo que me indicaste para guardar los datos de la lista en la tabla, lo hice en el evento clic del botón que me guarda toda la información en la tabla y NO me guarda esos datos: el codigo fue el siguiente:

Private Sub btnaceptar_Click()


On Error GoTo Err_btnaceptar_Click
DoCmd.GoToRecord , , acNewRec

Dim Graba As DAO.Recordset, K As Integer

Set Graba = CurrentDb.OpenRecordset("SOPORTE", dbOpenDynaset)
For K = 0 To lstSolucionSwTotal.ListCount - 1
Graba.AddNew
Graba.Fields("solucionSw") = lstSolucionSwTotal.ItemData(K)
Graba.Update
Next K
Graba.Close: Set Graba = Nothing ' Esto se le olvidó ponerlo.


Exit_btnaceptar_Click:
Exit Sub

Err_btnaceptar_Click:
MsgBox "Debe diligenciar los campos obligatorios (*) "
Resume Exit_btnaceptar_Click

End Sub

Muchas 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

RE:ENRIQUE

Publicado por Enrique (1299 intervenciones) el 10/05/2006 12:39:42
Vamos a ver Andrés:
Esta línea que has puesto al principio del Evento es cosa tuya no mía y posiblemente sea lo que haga que no funcione:
DoCmd.GoToRecord , , acNewRec

¿ Porqué haces un salto a nuevo registro ? para agregar nuevos registros con Recorset DAO ya tenemos el .AddNew.

Cuando digo que posiblemente sea eso lo que haga que no funcione, es un suponer porque tambien podría ser que no hayas marcado la Referencia DAO, que el Nombre del campo de la Tabla no esté bien escrito o no sea ese, que el tipo de datos a grabar no coincida con el de la tabla, o vaya usted a saber.
Por mi parte doy por cerrado este tema pués es algo tan sencillo que no merece la pena perder más tiempo.

Un saludo
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:ENRIQUE

Publicado por Andres (10 intervenciones) el 10/05/2006 17:07:55
Hola Enrique:
De todas formas te agradesco mucho tu ayuda, talves para ti es algo sencillo pero para mi no y es por eso que tengo que agotar recursos. Muchas 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

RE:ENRIQUE

Publicado por Enrique (1299 intervenciones) el 10/05/2006 20:17:30
Andres, no quisiera que al final te quedes sin resolverlo y de paso me juzgues mal, pero es que ya no sé que decirte. Si quieres envíame en una mdb solamente el Formulario con el Cuadro de Lista y la Tabla y te lo devuelvo funcionando y así de paso ves donde fallabas. Lo puedes hacer al correo que indico arriba.

Cordiales 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:ENRIQUE

Publicado por Fede (14 intervenciones) el 09/05/2006 10:43:22
Hola,

una pequeña correccion....Access 2002 si permite ya hacer RemoveItem.

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