PDA

View Full Version : سوال: خروجی دیتا گراید به ورد



vahidmasoudi1391
سه شنبه 16 دی 1393, 21:40 عصر
سلام
چطور می توان دیتا گرید را به ورد تبدیل کرد ضمنا" من کد زیر را پیدا کردم ولی نمی دانم چزور کار می کند


Option Explicit

' variables para la conexión y el recordset ado
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset


Private Sub Command1_Click()
On Error GoTo ErrSub

Dim o_Word As Word.Application
Dim Documento As Word.Document

Dim c As Integer ' columna
Dim f As Long ' fila
Dim dato As Variant ' valor de la celda del datagrid

' Establece la referencia al Word
Set o_Word = New Word.Application

' Pone el Word visible
o_Word.Visible = True

'Abrimos el documento "archivoWord.doc" con Open
Set Documento = o_Word.Application.Documents.Open(App.Path + "\archivoWord.doc")

'Nos vamos al marcador llamado "tabla" en el documento, _
para insertar la tabla en ese punto
Selection.goto What:=wdGoToBookmark, Name:="Tabla"

With Documento
'Agregamos la tabla dentro de Word con las _
filas y columnas que tenga el datagrid
ActiveDocument.Tables.Add Range:=Selection.Range, _
NumRows:=DataGrid1.ApproxCount + 1, _
NumColumns:=DataGrid1.Columns.Count


'Recorremos el Data Grid para agregar las columnas y filas a nuestra tabla
For c = 0 To DataGrid1.Columns.Count - 1

DataGrid1.Row = 0
ActiveDocument.Tables(1).Cell(1, c + 1).Range.InsertAfter _
DataGrid1.Columns(c).Caption 'agregar columnas

' recorre las filas de la columna actual
For f = 0 To DataGrid1.ApproxCount - 1
' almacena el dato de la celda del datagrid de la columna actual
dato = DataGrid1.Columns(c).CellValue(DataGrid1.GetBookma rk(f))
' agrega el dato a la celda de la tabla
ActiveDocument.Tables(1).Cell(f + 2, c + 1).Range.InsertAfter dato

Next f
Next c
End With

'Descargamos los objetos
Set o_Word = Nothing
Set Documento = Nothing


Exit Sub

ErrSub:
MsgBox Err.Description, vbCritical
On Error Resume Next
Set o_Word = Nothing
Set Documento = Nothing


End Sub

Private Sub Form_Load()

' Conexión ado

Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
"Source=C:\Archivos de programa\Microsoft " & _
"Visual Studio\VB98\NWIND.MDB;Persist Security Info=False"

' abre la base de datos Nwind.mdb
cn.Open

' Crea un recordset
Set rs = New ADODB.Recordset
' Llena el recordset
rs.Open "Select IdEmpleado,Nombre From empleados", _
cn, adOpenStatic, adLockOptimistic

' Enlaza el DataGrid al recordset
Set DataGrid1.DataSource = rs

Command1.Caption = " Mandar Datagrid a word "
End Sub