Tema: Msflexgrid
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/09/2004, 10:05
Loquillo_
 
Fecha de Ingreso: septiembre-2004
Ubicación: Machala - El Oro - Ecuador
Mensajes: 22
Antigüedad: 20 años, 4 meses
Puntos: 0
Mira, no se pueden ajustar automáticamente, pero si se pueden fusionar, esto quiere decir que puedes combinar el alto de las celdas.

Aqui te envio un ejemplo:

En un form debes crear los siguientes controles:

MsFlexGrid Flex (con tres columnas y 2 filas)
ControlData Data1
CommonDialog CommonDialog1
Una Base de Datos de Ejemplo llamada Biblio.mdb

Por si acaso, este ejemplo se encuentra tambien en el Disco 1 de MSDN

Option Explicit

Private Sub flex_DragDrop(Source As VB.Control, X As Single, Y As Single)
If flex.Tag = "" Then Exit Sub
flex.Redraw = False
flex.ColPosition(Val(flex.Tag)) = flex.MouseCol
DoSort
flex.Redraw = True
End Sub

Private Sub flex_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
flex.Tag = ""
If flex.MouseRow <> 0 Then Exit Sub
flex.Tag = Str(flex.MouseCol)
flex.Drag 1
End Sub

Private Sub Form_Load()
On Error GoTo FormLoad_Err

Data1.DatabaseName = CurDir & "\biblio.mdb"

flex.Redraw = False
DoInitialSettings
DoSql
DoSort
Data1.Refresh
flex.Redraw = True

FormLoad_Exit:
Exit Sub

FormLoad_Err:
'se requiere un control de errores avanzado si no se ha encontrado la base de datos,
'como indicaría el error 3024.
If Err = 3024 Then
'establece las propiedades de CommonDialog antes de mostrarlo
With CommonDialog1
.DialogTitle = "No se encuentra la ubicación del archivo biblio.mdb"
.Filter = "(*.mdb)|*.mdb"
.InitDir = CurDir
.FileName = "biblio.mdb"
.Flags = cdlOFNExplorer Or cdlOFNFileMustExist Or cdlOFNPathMustExist
.ShowOpen
'asegura que el nombre del archivo no está vacío
If .FileName <> "" Then
'asegura que el nombre del archivo de la base de datos es realmente biblio.mdb
If Right(UCase(.FileName), Len("biblio.mdb")) = "BIBLIO.MDB" Then
Data1.DatabaseName = .FileName
End If
Resume
Else
Unload Me
End If
End With
ElseIf Err <> 0 Then ' otro error
MsgBox "Error inesperado: " & Err.Description
End
End If
Resume FormLoad_Exit

End Sub

Sub DoInitialSettings()

Dim i%
flex.Row = 0
flex.ColAlignment(0) = 7

For i = 0 To flex.Cols - 1

flex.Col = i
flex.CellFontSize = 14
flex.CellAlignment = 4

flex.MergeCol(i) = True ' Permite la fusión en las columnas entre 0 y 3
flex.ColWidth(i) = 2000 ' Establece la anchura de la columna
Next i

flex.MergeCells = flexMergeRestrictColumns

End Sub

Sub DoSql()

Dim mysql$

mysql$ = "SELECT "
mysql = mysql & "Publishers.[Company Name], "
mysql = mysql & "Authors.Author, "
mysql = mysql & "Titles.Title "
mysql = mysql & "FROM Authors INNER JOIN "
mysql = mysql & "(Publishers INNER JOIN ([title author] INNER JOIN Titles ON [title author].ISBN = Titles.ISBN) ON Publishers.PubID = Titles.PubID) "
mysql = mysql & "ON Authors.Au_ID = [title author].Au_ID "
mysql = mysql & "WHERE Authors.Au_ID < 30 "
Data1.RecordSource = mysql

End Sub

Sub DoSort()
flex.Col = 0
flex.ColSel = flex.Cols - 1
flex.Sort = 1 ' orden ascendente

End Sub