Sección de códigos, trucos y ejemplos para visual basic
<Volver> - Anterior - Siguiente
El ejemplo tiene dos procedimientos , uno llamado Cargar_FlexGrid, en el cual se le debe enviar como parámetro, el path de la base de datos, la sentencia sql para llenar el recordset y el control Flexgrid para llenar los datos en la grilla.
El otro procedimiento se llama Exportar_Flex_Html. Este tiene dos parámetros, el path donde generar y guardar el archivo html, y el otro es el control Flexgrid que ya tiene cargados los datos
Colocar en un formulario Form1 los siguientes controles:
Nota: Agregar también la referencia a Microsoft Activex Data Objects para poder utilizar ADO
Vista del Form1
Vista del Form2 con el control WebBrowser y el Html cargado

Código fuente en el Form1
Option Explicit '*************************************************************************** '* Controles: tres CommandButton, un commonDialog, un WebBrowser en Form2, _ un MsHierarchical Flex Grid y un textBox llamado txt_sql '*************************************************************************** Private Sub Command1_Click() Dim Ruta As String With CommonDialog1 .CancelError = True .Filter = "Archivos Html|*.Html|Archivos Htm|*.htm" .FileName = vbNullString On Error Resume Next .ShowSave If Err.Number = 32755 Then Exit Sub End If On Error GoTo 0 If .FileName = "" Then Exit Sub 'Path para el archivo html que se carga en el WebBrowser del Form2 Form2.Path_Html = .FileName 'Se le pasa el path de la base de datos y el control _ Hierarchical flexGrid Call Exportar_FlexGrid_Html(.FileName, MSHFlexGrid1) End With End Sub Private Sub Command2_Click() Dim sql As String ' Consulta SQL sql = txt_SQL If txt_SQL = vbNullString Then MsgBox "Falta escribir la consulta sql en el textBox", vbCritical Exit Sub End If With CommonDialog1 .Filter = "MDB|*.mdb" .ShowOpen If .FileName = "" Then Exit Sub ' Carga los datos en el flexgrid Call Cargar_FlexGrid(.FileName, sql, MSHFlexGrid1) End With End Sub 'sub que carga los datos en el control Flexgrid Sub Cargar_FlexGrid(Path As String, sql As String, FlexGrid As MSHFlexGrid) Dim cn As Connection Dim rst As Recordset 'Nueva conexión ADO Set cn = New Connection cn.CursorLocation = adUseClient 'Abre la conexión cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path & ";" Set rst = New Recordset 'Abre el recordset rst.Open sql, cn, adOpenDynamic, adLockOptimistic ' Llena el FlexGrid Set FlexGrid.DataSource = rst FlexGrid.Col = 1 FlexGrid.FixedRows = 1 FlexGrid.FixedCols = 0 ' Para poder ajustar las columnas FlexGrid.AllowUserResizing = flexResizeColumns End Sub Private Sub Command3_Click() 'Abre el Formulario que tiene el control _ WebBrowser para ver la página con los datos Form2.Show 1 End Sub Private Sub Form_Load() 'Caption de los CommandButton y otros Command1.Caption = " Exportar a Html " Command2.Caption = " Abrir base de dato " Command3.Caption = " Ver en WebBrowser " Me.Caption = " Ejemplo para exportar un FlexGrid a Html " txt_SQL = "" End Sub
Código fuente en el Form2
Option Explicit Public Path_Html As String '*************************************************************************** '* Name : Código fuente del form2 '* Controles : Un Control webBrowser llamado webBrowser1 '*************************************************************************** Private Sub Form_Load() Me.Caption = Path_Html 'Carga el archivo html en el contol webbrowser WebBrowser1.Navigate Path_Html End Sub Private Sub Form_Resize() 'Redimensiona y posiciona el Control WebBrowser WebBrowser1.Move 10, 10, ScaleWidth, ScaleHeight End Sub
Código en un módulo bas:
'***************************************************************************
'* Código del módulo bas para exportar el control MsFlexGrid
a un Html
'***************************************************************************
Sub Exportar_FlexGrid_Html(Path As String, FlexGrid As Object)
Dim codigo_Html As String
Dim Fila As Integer
Dim Columna As Integer
Dim fname As String
Dim f As Integer
Screen.MousePointer = vbHourglass
'Color de la Tabla y el borde
codigo_Html = "<TABLE width=100% BORDER=0>" & vbCrLf
'Encabezados
codigo_Html = codigo_Html & "<TR bgcolor=#000000> "
& vbCrLf
'Recorre las columnas del Flexgrid
For Columna = 0 To FlexGrid.Cols - 1
codigo_Html = codigo_Html & " <TH><font color=#FFFFFF>"
& _
FlexGrid.TextMatrix(0, Columna) & "</TH>" & vbCrLf
Next Columna
codigo_Html = codigo_Html & "</TR>" & vbCrLf
' Recorre las filas y las columnas y genera el _
etiquetado y lo guarda en la variable ( codigo_Html )
For Fila = 1 To FlexGrid.Rows - 1
codigo_Html = codigo_Html & "<TR bgcolor=#D3D3D3 > "
& vbCrLf
For Columna = 0 To FlexGrid.Cols - 1
codigo_Html = codigo_Html & " <td><font color=#000000>"
& _
FlexGrid.TextMatrix(Fila, Columna) & "</TD>" & vbCrLf
Next
codigo_Html = codigo_Html & "</TR>" & vbCrLf
DoEvents
Next
'Cierra las etiquetas del codigo_Html
codigo_Html = "<HTML><HEAD></HEAD><BODY BGCOLOR=#999999>"
& vbCrLf & _
codigo_Html & "</BODY></HTML>"
' Graba el archivo en disco
f = FreeFile
'Abre y Crea el archivo Html
Open Path For Output As f
'Escribe los datos del FlexGRid en el archivo HTML
Print #f, codigo_Html
Close
Screen.MousePointer = vbNormal
End Sub
Buscar en Recursos vb
Recursos visual basic - Buscar - Privacidad - Copyright © 2005 - 2008 - www.recursosvisualbasic.com.ar