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
چطور می توان دیتا گرید را به ورد تبدیل کرد ضمنا" من کد زیر را پیدا کردم ولی نمی دانم چزور کار می کند
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