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

Tengo un problema al cargar un recordset en un Mshflexgrid de Visual basic 6.0

Estas en el tema de Tengo un problema al cargar un recordset en un Mshflexgrid de Visual basic 6.0 en el foro de Visual Basic clásico en Foros del Web. Hola amigos, estoy tratando de hacer un programilla para dar citas y estoy utilizando un mshflexgrid para mostrar los datos del recordset. La primera fila ...
  #1 (permalink)  
Antiguo 25/03/2009, 13:24
Avatar de Carlitoscl  
Fecha de Ingreso: enero-2009
Ubicación: COLOMBIA
Mensajes: 60
Antigüedad: 15 años, 3 meses
Puntos: 0
Tengo un problema al cargar un recordset en un Mshflexgrid de Visual basic 6.0

Hola amigos, estoy tratando de hacer un programilla para dar citas y estoy utilizando un mshflexgrid para mostrar los datos del recordset. La primera fila la tengo para los encabezados y la primera columna para mostrar las horas, pero el problema que tengo es que cuando ejecuta la consulta me limpia las horas y los encabezados de la fila se remplazan por los nombres de los campos. El codigo que tengo es el siguiente y tengo conexion ado:

Private Sub Form_Load()
conecta.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\eyesoft.mdb"
Calendar1.Today
With flex2
.FixedRows = 1
.FixedCols = 1
.ColWidth(1) = 3500
.ColWidth(0) = 600
.ColWidth(2) = 1500
.TextMatrix(0, 0) = "HORA"
.TextMatrix(0, 1) = "NOMBRES"
.TextMatrix(0, 2) = "ASEGURADORA"
.TextMatrix(0, 3) = "TELEFONO"
.TextMatrix(0, 4) = "CELULAR"
.TextMatrix(1, 0) = "08.00"
.TextMatrix(2, 0) = "08.15"
.TextMatrix(3, 0) = "08.30"
.TextMatrix(4, 0) = "08.45"
.TextMatrix(5, 0) = "09.00"
.TextMatrix(6, 0) = "09.15"
.TextMatrix(7, 0) = "09.30"
.TextMatrix(8, 0) = "09.45"
.TextMatrix(9, 0) = "10.00"
.TextMatrix(10, 0) = "10.15"
.TextMatrix(11, 0) = "10.30"
.TextMatrix(12, 0) = "10.45"
.TextMatrix(13, 0) = "11.00"
.TextMatrix(14, 0) = "11.15"
.TextMatrix(15, 0) = "11.30"
.TextMatrix(16, 0) = "11.45"
.TextMatrix(17, 0) = "12.00"
.TextMatrix(18, 0) = "12.15"
.TextMatrix(19, 0) = "12.30"
.TextMatrix(20, 0) = "12.45"
.TextMatrix(21, 0) = "01.00"
End With
citas.Open "SELECT * FROM t_citas", conecta, adOpenDynamic, adLockOptimistic
Set flex2.DataSource = citas
End Sub

Si me pueden ayudar, de antemano les doy las gracias.
  #2 (permalink)  
Antiguo 26/03/2009, 18:25
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Tengo un problema al cargar un recordset en un Mshflexgrid de Visual basic

Hola!
Seguramente cuando haces el Citas.Open "Select..." El control lo que hace es poner los datos de ese Select como naturalmente lo hacen ellos por default.

Prueba usando Ciclos For anidados en los cuales manejes a tu antojo el lugar donde kieres que se inserte determinado dato, mas o menos asi:
Haces todo lo que ya pusiste, menos el Citas.Open, y creas un ADODB.Recordset
Dim DR as New ADODB.RecordSet

Set Dr = Conecta.Execute("Select * From t_citas (NoLock)")
' Preguntas si obtuvo datos
If Not Dr.EOF Then
'Con este ciclo manejas los renglones
For I = 1 to dr.RowCount - 1
'Con este Manejas las columnas
For J = 1 to 5
TextMatrix(I,J) = dr.Fields.Item(J).Value 'Para esto es necesario hacer
'Select, acomodando los campos en el ordern correcto, y solo los necesarios
Next J
Next I
Dr.MoveNext ' Para que cambie al siguiente registro
End if


Ojala te ayude, Suerte
  #3 (permalink)  
Antiguo 26/03/2009, 23:25
Avatar de Carlitoscl  
Fecha de Ingreso: enero-2009
Ubicación: COLOMBIA
Mensajes: 60
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Tengo un problema al cargar un recordset en un Mshflexgrid de Visual basic

Mil gracias por su ayuda, ya logre que me imprima los datos donde yo queria, lo que no le entiendo es como le hago para que me imprima todos los registros que hay en la tabla, pues resulta que me imprime solo el primero , ademas la propiedad RowCount no funciona y tuve que asignarle un valor para probar, como la tabla solo tiene 3 registros, entonces asigne el 3 pero me imprime solo el primer registro 3 veces y pues no se como hacerle.

Dim dr As New ADODB.Recordset
Set dr = conecta.Execute("select * from t_citas")
If Not dr.EOF Then
'Con este ciclo manejas los renglones
For i = 1 To 3
'Con este Manejas las columnas
For j = 1 To 5
flex2.TextMatrix(i, j) = dr.Fields.Item(j).Value 'Para esto es necesario hacer
'Select, acomodando los campos en el ordern correcto, y solo los necesarios
Next j
Next i
' Para que cambie al siguiente registro
dr.MoveNext
End If

De todas formas mil gracias.
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 01:07.