Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema con tamaño de columnas en el MSHFlexGrid

Estas en el tema de Problema con tamaño de columnas en el MSHFlexGrid en el foro de Programación General en Foros del Web. Hola a todos Tengo un MSHFlexGrid que toma de una tabla de una Base de datos ciertos datos y cuando los muestra hay uno de ...
  #1 (permalink)  
Antiguo 11/08/2004, 10:38
 
Fecha de Ingreso: diciembre-2003
Mensajes: 69
Antigüedad: 20 años, 11 meses
Puntos: 0
Problema con tamaño de columnas en el MSHFlexGrid

Hola a todos

Tengo un MSHFlexGrid que toma de una tabla de una Base de datos ciertos datos y cuando los muestra hay uno de ellos que es muy largo y trate de cambiarle el ancho a la columna del MSHFlexGrid pero no me deja, le puse MSHFlexGrid.ColWidth(2) = 300 y me dice que hay un error, luego en la ayuda encontre que solo puede ser 0 o -1 ese valor, 0 para hacerlo transparente, asi que no me queda otra opcion que -1 y no me sirve.

Asi que probe hacerlo con un MSFlexGrid y ahi si me lo hace como yo quiero, el problema es que me da un error cuando le quiero introducir los datos, el codigo que tengo es el siguiente:

Código:
Private datPrimaryRS As ADODB.Recordset

Private Sub Form_Load()

    Dim sConnect As String
    Dim sSQL As String
    Dim dfwConn As ADODB.Connection
    Dim i As Integer
    Dim id As Integer
    
    id = Val(Form12.DataList2.BoundText)


    ' establecer cadenas
    sConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Password='';User ID=Admin;Data Source= C:\EXCHARSYS\Data\Data1.mdb;Mode=Share Deny None;Extended Properties='';Jet OLEDB:System database='';Jet OLEDB:Registry Path='';Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password='';Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False"
    sSQL = "select Fecha_evento,Hora_evento,evento from Eventos where ID_Experimento="
    sSQL = sSQL & id & ""

    ' abrir conexión
    Set dfwConn = New ADODB.Connection
    dfwConn.Open sConnect

    Set datPrimaryRS = New ADODB.Recordset
    datPrimaryRS.CursorLocation = adUseClient
    datPrimaryRS.Open sSQL, dfwConn, adOpenForwardOnly, adLockReadOnly

   
    Set MSFlexGrid1.DataSource = datPrimaryRS  [B][COLOR=Red]AQUI ESTA EL PROBLEMA

    With MSFlexGrid1

        .Redraw = False
        ' establecer anchos de columna de cuadrícula
        .ColWidth(0) = 300
        .ColWidth(1) = 300
                
        .ColWidth(2) = 4000
        .FormatString = "Hora Evento | Fecha Evento | Evento"

        ' establecer tipo de cuadrícula
        .AllowBigSelection = True
        .FillStyle = flexFillRepeat
        .ColAlignment(0) = flexAlignCenterCenter
        .ColAlignment(1) = flexAlignCenterCenter
        .ColAlignment(2) = flexAlignCenterCenter
        
        ' encabezado en negrita
        .Row = 0
        .Col = 0
        .RowSel = .FixedRows - 1
        .ColSel = .Cols - 1
        .CellFontBold = True

        ' atenuar otra columna
        For i = .FixedCols To .Cols() - 1 Step 2
            .Col = i
            .Row = .FixedRows
            .RowSel = .Rows - 1
            .CellBackColor = &HC0C0C0   ' gris claro
        Next i

        .AllowBigSelection = False
        .FillStyle = flexFillSingle
        .Redraw = True

    End With
End Sub
Cuando llega a la parte MSFlexGrid1.DataSource = datPrimaryRS me da el siguiente error " Variable de tipo Object o la variable with no esta establecida"

Alguien sabe donde esta el error?

Saludos
  #2 (permalink)  
Antiguo 11/08/2004, 22:38
Avatar de aavg  
Fecha de Ingreso: abril-2002
Ubicación: Morelia México
Mensajes: 356
Antigüedad: 22 años, 7 meses
Puntos: 1
Replantea tu pregunta

Hola mVero:

El MSFlexGrid, suele hacer cosas asi cuando le asignas un recordset aunque el recordset sea correcto.

Yo conozco demasiado bien el MSHFlexGrid tengo cerca de 2 años trabajando con ese control en tareas pesadas edicion, etc y es un control bastante bueno, me extraña el error que me dices al asignarle un campo grande asi que te agradeceria si puedes formular nuevamente tu pregunta basandola en lo que tienes para el MSHFlexGrid y asi te puedo ayudar, seguramente se trata de alguna propiedad que no este bien establecida, y tambien otra cosa mencionaste que un dato muy grande, pero ...... ¿Que tan grande es la informacion de ese campo? y de que tipo.
__________________
Abraham Velasco
Usuario # 516 en los Foros del Web.
El hombre no vale por lo que sabe, sino por lo que transmite
C'est parce qu'il y a un Dieu que nous sommes libres

Última edición por aavg; 11/08/2004 a las 22:40 Razón: Error en la primer linea
  #3 (permalink)  
Antiguo 12/08/2004, 12:46
 
Fecha de Ingreso: diciembre-2003
Mensajes: 69
Antigüedad: 20 años, 11 meses
Puntos: 0
Hola Abraham

Mira yo tenia exactaemente el mismo codigo que coloque pero con el MSHFlexGrid y funciona bien, pero no me agranda el ancho de las columnas, me las pone del mismo tamaño que viene predefinido coloquele el numero que le coloque en el ancho de la columna.
  #4 (permalink)  
Antiguo 12/08/2004, 12:57
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 20 años, 3 meses
Puntos: 13
parche provisorio...

Hola gente. Yo estuve trabajando tambien con MSHFlexGrid y tambien tengo el mismo problema, lo solucione agrandando el ancho de columna con la propiedad FormatString, pero no estoy seguro si te sirve cuando asocias el grid directamente a un Recordset...

De todas manera chequea la propiedad AllowUserResizing, que le permite al usuario (en tiempo de ejecución obviamente) cambiar el ancho y alto de las columnas y filas. Si bien no es la solución es un parchecito interesante. Saludos. Lucas
  #5 (permalink)  
Antiguo 12/08/2004, 13:17
 
Fecha de Ingreso: diciembre-2003
Mensajes: 69
Antigüedad: 20 años, 11 meses
Puntos: 0
Si, eso fue lo que tuve que hacer, gracias.
De todas formas no me parece como la opcion mas correcta aunque resuelva el problema, pero te saca de un apuro.

Gracias de nuevo
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 23:59.