Tema: Error 3001
Ver Mensaje Individual
  #11 (permalink)  
Antiguo 16/06/2008, 15:22
Avatar de Txoco
Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 16 años, 10 meses
Puntos: 7
Respuesta: Error 3001

Quería resumirlo para no extenderme demasiado, y tendría que haberlo explicado mejor... disculpas...

Y más disculpas, porque acabo de releer todo el hilo, y creo que entendí mal la idea...

Veamos; todo el post que te envié se basaba en la idea de que tuvieses una tabla que tuviese, entre otros datos, un apellido y un código no numérico. Pongamos por caso una tabla de pacientes en la que la clave es el DNI. Puesto que el DNI acaba en una letra, no puede ser numérico, por lo que no puedes asignarlo a la propiedad ItemData de la combo, y por eso tendrías que guardarlo aparte para poder obtenerlo seleccionando el apellido. Efectivamente, un lío, porque malinterpreté el ejemplo con que abriste el hilo.

Asi que, si lo que quieres hacer es simplemente obtener un registro seleccionando el apellido de una combo, olvida todo lo que te he dicho y sigue estos pasos:

- Primero tienes que cargar la lista de la combo, obteniendo todos los apellidos de la tabla y agregándolos de uno en uno con el método .AddItem de la propia combo.

- Después, por ejemplo en el evento Click de la combo, tienes que llamar al método Find del recordset:

Código:
    Call RecBD.Find("apellido='" & Combo1.List(Combo1.ListIndex) & "'")
Con "Combo1.List(Combo1.ListIndex)" tienes el apellido que ha seleccionado el usuario, así que sólo tienes que buscarlo en el recordset, y ya podrías obtener todos los demás datos.

Otro tema distinto es el de asignar los campos a las textboxes, que de eso no había dicho nada. Si lo haces manualmente, como comentaste, puedes hacerlo justo a continuación del .Find (dentro del mismo evento), poniendo el nombre del recordset, una admiración de cierre, y el nombre del campo:

Código:
    Call RecBD.Find... ' Igual que arriba
    ' <textbox> = <recordset>!<campo>
    txtNombre = RecBD!Nombre
    txtFechaAlta = RecBD!FechaAlta
De todas formas, mi recomendación es que utilices controles Data, porque te realizan la asignación automáticamente; te bastaría con buscar el registro con .Find para que te apareciesen los datos en pantalla sin hacer nada más.

Y tranquilo, que batallaremos lo que haga falta , perdóname por haber liado el tema más de lo necesario, a veces me emociono tecleando y acabo siendo un poco bruto u^^