Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Error de lectura o duplicado? Ayuda.

Estas en el tema de Error de lectura o duplicado? Ayuda. en el foro de Visual Basic clásico en Foros del Web. Hola.. Bueno sere breve. Tengo una base de datos en access.. uso el ADO para accesar a ella. EL problema esta en que cuando quiero ...
  #1 (permalink)  
Antiguo 05/08/2005, 09:55
Avatar de UID
UID
 
Fecha de Ingreso: febrero-2004
Ubicación: Villahermosa tabasco cent
Mensajes: 251
Antigüedad: 20 años, 2 meses
Puntos: 0
Error de lectura o duplicado? Ayuda.

Hola.. Bueno sere breve.
Tengo una base de datos en access.. uso el ADO para accesar a ella.
EL problema esta en que cuando quiero cargar una lista de nombres en un list1 me carga todos los nombres.. el problema que tengo es que los nombres estab duplicados por ejemplo tengo tres nombres asi:
cactus
cactus
cactus.
la darles click en cualquiera de los nombres me aparece la informacion de ellos pero la misma informacion se repite en las tres..a pesar de que las tres tienen diferente informacion.. cual es mi error o que tengo que hacer.. les dejo el codigo.

Con Este Se Carga en el list1 todos los nombres:


Código:
Private Sub Form_Load()
bd.Refresh
cont = bd.Recordset.RecordCount
For i = 1 To cont
List1.AddItem (bd.Recordset.Fields("pozo"))
bd.Recordset.MoveNext
Next
End Sub
Y con este se carga la informacion en un label1 o text1:
Código:
Private Sub List1_Click()
bd.Refresh
bd.Recordset.Find "pozo ='" & List1.Text & "'"
If Not (bd.Recordset.EOF) Then
   Text1.Text = bd.Recordset("observacion")
   lbregoexp.Caption = bd.Recordset("regoexp")
   lbbarra.Caption = bd.Recordset("barra")
   lbcaja.Caption = bd.Recordset("caja")
   lbpozo.Caption = bd.Recordset("pozo")
   lbmnemonico.Caption = bd.Recordset("mnemonico")
   Label4.Caption = bd.Recordset("actualizacion")
   Label2.Visible = True
  
   End If
    
End Sub
la base de datos esta asi:

Código:
Pozo       Observacion   Caja

cactus     pozo vacion   MPCS
cactus     pozo lleno      MPC
cactus     pozo sucio     MPCR
Se supone que deberia mostrar la descipcion de cada uno pero me muestra solo la informacion de uno en los tres.. espero haberme explicado.. si no diganme que onda e igual les mando el programa y el proyecto.
__________________
http://www.xpresatelibre.com La Xpresion Al Maximo Nivel
  #2 (permalink)  
Antiguo 05/08/2005, 15:34
Avatar de robertonavarro  
Fecha de Ingreso: octubre-2004
Mensajes: 72
Antigüedad: 19 años, 6 meses
Puntos: 1
La cosa es así: cuando tu seleccionas el elemento de la lista, por ejemplo 'cactus' y traes en un recordset los registros que tengan 'cactus' en el campo Pozo, el recordset resultante regresa un conjunto de registros, no uno solo.
Si hicieras un bd.Recordset.MoveNext, te moverías entre los registros, obteniendo la información de cada uno.

La cuestión es: ¿Cual de los registros contiene la información del 'cactus' en específico que se busca?

Sugerencia: Agregale a la tabla un campo autonumérico (Id) que sea la llave primaria, asi ya puedes distinguir entre los distintos 'cactus', y sería el valor de ese campo por el que harías la búsqueda. El recordset de búsqueda te regresaría siempre solo un registro: el correcto.

Claro que esto tiene sus complicaciones, pero facilmente corregibles; por ejemplo de donde tomarías el Id? tendrias que agregarlo a la lista concatenándolo con el otro campo asi: List1.AddItem ( bd.Recordset.Fields("Id") & " " & bd.Recordset.Fields("pozo"))

Y para tomar el Id cambiarías en el evento List1_Click() la instrucción: bd.Recordset.Find "pozo ='" & List1.Text & "'"
Por la instrucción: bd.Recordset.Find "Id =" & Trim(Mid(List1.List(List1.ListIndex), 1, InStr(1, List1.List(List1.ListIndex), " "))) & ""


Por cierto, el objeto List no tiene propiedad Text, como tienes en tu codigo.

Bye.
por:
  #3 (permalink)  
Antiguo 06/08/2005, 03:03
Avatar de UID
UID
 
Fecha de Ingreso: febrero-2004
Ubicación: Villahermosa tabasco cent
Mensajes: 251
Antigüedad: 20 años, 2 meses
Puntos: 0
Oye muchas gracias :D realmemte me sirvio te lo agradesco mucho primo :P jejeje ( lo de primo es por que yo igual me apellido Navarro ) jejeje a por cierto igual gracias por lo del objeto list de q no tiene la propidad Text :D gracias.
__________________
http://www.xpresatelibre.com La Xpresion Al Maximo Nivel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:04.