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

MSFlexGrid que repite registros

Estas en el tema de MSFlexGrid que repite registros en el foro de Visual Basic clásico en Foros del Web. hola que tal me atrevo a poner este post por q ya intente usar el loop de diferentes maneras con el until con ! con ...
  #1 (permalink)  
Antiguo 11/02/2009, 11:12
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 3 meses
Puntos: 15
MSFlexGrid que repite registros

hola que tal me atrevo a poner este post por q ya intente usar el loop de diferentes maneras con el until con ! con for incluso jeje pero me sigue apareciendo repeticiones en mi consulta osea tengo unMSFlexGrid y cuando hago la consulta me aparece 5 veces un mismo registro!! este es el codigo q tengo para recorror mi MSFlexGrid y agregar campos
Private Sub buscar()
Dim datatemp1
Dim r
r = 1
MSFlexGrid1.Clear
adorno
Do While Rs.EOF = False
MSFlexGrid1.AddItem ("")

Select Case Rs.Fields(2)
Case "A"
datatemp1 = "Individual"
Case "B"
datatemp1 = "Grupos"
End Select

If Val(r) Mod 2 = 0 Then
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = r
MSFlexGrid1.TexT = "" & Rs.Fields(5)
MSFlexGrid1.CellBackColor = &HE0E0E0
MSFlexGrid1.Col = 2
MSFlexGrid1.Row = r
MSFlexGrid1.TexT = "" & Rs.Fields(0)
MSFlexGrid1.CellBackColor = &HE0E0E0
MSFlexGrid1.Col = 3
MSFlexGrid1.Row = r
MSFlexGrid1.TexT = "" & Rs.Fields(3)
MSFlexGrid1.CellBackColor = &HE0E0E0
MSFlexGrid1.Col = 4
MSFlexGrid1.Row = r
MSFlexGrid1.TexT = "" & Rs.Fields(1)
MSFlexGrid1.CellBackColor = &HE0E0E0
MSFlexGrid1.Col = 5
MSFlexGrid1.Row = r
MSFlexGrid1.TexT = "" & datatemp1
MSFlexGrid1.CellBackColor = &HE0E0E0
Else
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = r
MSFlexGrid1.TexT = "" & Rs.Fields(5)
MSFlexGrid1.Col = 2
MSFlexGrid1.Row = r
MSFlexGrid1.TexT = "" & Rs.Fields(0)
MSFlexGrid1.Col = 3
MSFlexGrid1.Row = r
MSFlexGrid1.TexT = "" & Rs.Fields(3)
MSFlexGrid1.Col = 4
MSFlexGrid1.Row = r
MSFlexGrid1.TexT = "" & Rs.Fields(1)
MSFlexGrid1.Col = 5
MSFlexGrid1.Row = r
MSFlexGrid1.TexT = "" & datatemp1
End If


r = r + 1
Rs.MoveNext
Loop


If Val(r) Mod 2 = 0 Then
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = r
MSFlexGrid1.CellBackColor = &HE0E0E0
MSFlexGrid1.Col = 2
MSFlexGrid1.Row = r
MSFlexGrid1.CellBackColor = &HE0E0E0
MSFlexGrid1.Col = 3
MSFlexGrid1.Row = r
MSFlexGrid1.CellBackColor = &HE0E0E0
MSFlexGrid1.Col = 4
MSFlexGrid1.Row = r
MSFlexGrid1.CellBackColor = &HE0E0E0
MSFlexGrid1.Col = 5
MSFlexGrid1.Row = r
MSFlexGrid1.CellBackColor = &HE0E0E0
End If

End Sub



ojala me puedaan ayudar a entender en q falla la logica gracias!!
  #2 (permalink)  
Antiguo 11/02/2009, 17:42
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: MSFlexGrid que repite registros

Qué tal?

Todo apunta a que el recordset es el que te está devolviendo las filas por quintuplicado, probablemente tengas que hacer alguna agrupación o comprobar los enlaces entre tablas, ya que el código que has mandado parece correcto.

Por otra parte, cuando agregues líneas a un MSFlexGrid, hazlo en una sola llamada para ahorrar código y acelerar la presentación:

Código:
Call MSFlexGrid1.AddItem(Rs.Fields(5) & vbTab & _
                         Rs.Fields(0) & vbTab & _
                         Rs.Fields(3) & vbTab & _
                         Rs.Fields(1) & vbTab & _
                         datatemp)
Por supuesto, pon el Select Case antes del AddItem

También puedes establecer MsFlexGrid1.Redraw = False antes de entrar en el bucle y volverlo a poner a True al salir; esto hará que no se redibuje el control con cada cambio, con lo que mejorará la respuesta de cara al usuario y reducirá el parpadeo mientras se llena.
__________________
wile sona li mute e sona
  #3 (permalink)  
Antiguo 12/02/2009, 09:14
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 3 meses
Puntos: 15
Respuesta: MSFlexGrid que repite registros

hola muchas gracias por tu pronta respuesta pero la verdad me da muchisima pena porq la q estaba mas soy yo segun yo para meter los registros no se repetia pues se me ocurrio meterme a la base de datos y si efectivamente se habia repetido el regsitro 5 veces y alguynos otros por triplicado el problema esta en la encriptacion que cuando kiero cambioar un archivo la base de datos no me distinque q hablo de la misma y me lo toma como otro registro no se si em explike bn jeje pero mil gracias por el tip de hecho lo implemente y si me ahorre muchas lineas saludos!!!
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 12:49.