Elemento de un ListBox a tabla en Access

Iniciado por InGuS, 11 Mayo 2005, 10:54 AM

0 Miembros y 1 Visitante están viendo este tema.

InGuS

Saludos a todos, estoy desarrollandu un pequeño proyecto como parte de mi evaluacion en la escuela. El proyecto es realmente sencillo simplemente alta, modificacion y eliminacion de registros.

Ya tengo todos los modulos pero tengo un problema con una ListBox ya que no consigo insertar el contenido del elemento seleccionado a la tabla en Access, el codifo que tengo hasta ahora es el siguiente:


Dataprod.Recordset!proveedor = cmbProv.List(ListIndex)


Con este codigo solo me agregar el primer elemento de la lista no el seleccionado. Me podrian decir porque hace esto o como puedo hacer para que me inserte el la tabla el elemento seleccionado de la lista.

El codigo que uso para llenar la lista es el siguiente:


    If DataProv.Recordset.EOF = False Then 'Permite obtener todos los datos ubicados en la tabla de inicio a fin
        Do While DataProv.Recordset.EOF = False 'Cargar todas los valores a la lista
            cmbProv.AddItem DataProv.Recordset.Fields("nombre")
            DataProv.Recordset.MoveNext
        Loop
    End If


Gracias de antemano.

Slasher-K

Asegurate que el nombre del campo sea el correcto y esté bien escrito, ya que es case sensitive (distingue mayúsculas de minúsculas).

También llama a MoveFirst antes de comenzar a enumerar los registros.

Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

InGuS

Ya revise todo lo que me comentas, el nomnre del campor esta bien ya que de hecho si me lo carga en el listbox pero el problema sigue siendo que solo toma encuenta el primer elemento de la lista ningun otro, yo pienso que el error esta en esta linea:

Dataprod.Recordset!proveedor = cmbProv.List(ListIndex)

quiza estoy usando mal alguna propiedad del listbox.

Saludos.

mit

si quieres agregar el elemento seleccionado, creo que es list.selected creo Xd

Slasher-K

Claro xD, es un error que pasé por alto:


Dataprod.Recordset!proveedor = cmbProv.List(ListIndex)


ListIndex no está declarada y no hace referencia a cmbProv :P. Lo tenés que usar asi:


Dataprod.Recordset!proveedor = cmbProv.List(cmbProv.ListIndex)


Acostumbrate a usar la instrucción Option Explicit al principio de los módulos.

Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

soplo

Hola
A ver si te entiendo. Tu quieres recorrer un listbox y grabar en una base de datos un registro por cada entrada que leas.

Algo como esto (usando DAO)

for x%=0 to list1.count-1
data1.recordset.addnew
data1.recordset.fields("campo")=list1.list(x%)
data1.recordset.update
next x%


Observa como recorro el bucle empezando por el principio y llegando hasta el final. Observa que list1.count te devuelve el número de entradas que tiene y que el primer elemento empieza por cero.

Observa también que list1.list(x%) te devuelve el string correspondiente a la entrada x% en vez de list1.listindex que te devuelve el string que esté seleccionado en ese momento.

Un saludo
Callar es asentir ¡No te dejes llevar!

InGuS

Muchas gracias a todos en especial a Slasher Keeper, ya quedo solucionado el problema, no me habia percatado que en algun momento por error borre option explicit (porque de hecho si esta marcado en las preferencias) con la linea que me diste queto todo resuelto.

Dataprod.Recordset!proveedor = cmbProv.List(cmbProv.ListIndex)

Saludos.