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

instruccion Do with en MSHFlexGrid se traba.

Estas en el tema de instruccion Do with en MSHFlexGrid se traba. en el foro de Visual Basic clásico en Foros del Web. Hola!! ojala alguien detecte donde anda mal mi codigo, tratare de ser breve. En mi MSHFlexiGrid se traba cuando entra al Do while, me recorre ...
  #1 (permalink)  
Antiguo 04/07/2005, 10:44
Avatar de rouuss  
Fecha de Ingreso: abril-2005
Ubicación: Mexico DF
Mensajes: 55
Antigüedad: 19 años
Puntos: 0
Exclamación instruccion Do with en MSHFlexGrid se traba.

Hola!! ojala alguien detecte donde anda mal mi codigo, tratare de ser breve.
En mi MSHFlexiGrid se traba cuando entra al Do while, me recorre el CatalogoDePecios, pero por cliente, es decir si tego 100clientes me recorre los 100
y solo deseo que me muestre por catalogo,es decir si de mis 100 clientes, 20 son pertenecen a 1 catalogo, aunque eso no importa por que solo quiero que
me muestre los catalogos (que unicamente tengo 6) para armar mi concentrado.

En mi BD tengo estas tablas con sus respectivos registros:

CatalogoPrecios
IdCatalogoPrecios
NombreCatalog
FechaMovimiento
ListaPrecio
IdCatalogoDePrecios
IdProdcuto
Unidad
PrecioU
Clientes
IdCliente
nombreCliente
IdCatalogoPrecios
Direccion
Contacto

'LLENA EN MSHFLexGrid LOS COMEDORES
' MSHFLexGrid esta nombrado como FlexComedor
Private Sub LLenaComedor()
Dim rcComedor As ADODB.Recordset

SQL = "SELECT CatalogoDePrecios.* FROM CatalogoDePrecios ORDER BY CatalogoDePrecios.CatalogoDePrecios;"
Set rcComedor = New ADODB.Recordset
rcComedor.Open SQL, cnBDDecfruver, adOpenStatic, adLockOptimistic

FlexComedor.Clear
FlexComedor.Rows = 1
FlexComedor.Cols = 4
FlexComedor.ColWidth(0) = 0
FlexComedor.ColWidth(1) = 5600
FlexComedor.ColWidth(2) = 0: FlexComedor.ColWidth(3) = 0

With rcComedor
.MoveFirst

Do While Not .EOF
FlexComedor.TextMatrix(FlexComedor.Rows - 1, 1) = !NombreCatalogo
FlexComedor.TextMatrix(FlexComedor.Rows - 1, 2) = !IdCatalogoPrecios
FlexComedor.TextMatrix(FlexComedor.Rows - 1, 3) = "NO"
FlexComedor.Rows = FlexComedor.Rows + 1
.MoveFirst
Loop
End With
FlexComedor.Rows = FlexComedor.Rows - 1
rcComedor.Close
End Sub

Pero en Do While Not .EOF, me recorre el CatalogoDePecios, pero por cliente (supongo, porque lo recorre una y otra vez),
y solo deseo que me muestre por catalogo,es decir si de mis 100 clientes, 20 son pertenecen a 1 catalogo, para armar mi concentrado.

Este mismo codigo lo utilice para mostrar las categorias de mis producto y funciona muy bien, pero aqui no se porque nunca termina,
y se traba mi aplicacion.

gracias!! salu2
  #2 (permalink)  
Antiguo 04/07/2005, 11:57
 
Fecha de Ingreso: junio-2005
Mensajes: 63
Antigüedad: 18 años, 10 meses
Puntos: 0
Código:
 Do While Not .EOF
FlexComedor.TextMatrix(FlexComedor.Rows - 1, 1) = !NombreCatalogo
FlexComedor.TextMatrix(FlexComedor.Rows - 1, 2) = !IdCatalogoPrecios
FlexComedor.TextMatrix(FlexComedor.Rows - 1, 3) = "NO"
FlexComedor.Rows = FlexComedor.Rows + 1
.MoveFirst  <----aqui te estas moviendo siempre al primer registro
Loop
End With
FlexComedor.Rows = FlexComedor.Rows - 1
rcComedor.Close
End Sub
  #3 (permalink)  
Antiguo 06/07/2005, 12:06
Avatar de rouuss  
Fecha de Ingreso: abril-2005
Ubicación: Mexico DF
Mensajes: 55
Antigüedad: 19 años
Puntos: 0
Siii!!!, que pena, muchas gracias por tu atencion.

Saludos
Rouss
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 08:30.