problema con desplazamiento en datagrid
Publicado por miguel (47 intervenciones) el 15/11/2005 23:29:06
Hola a todos, hace un tiempo escribí para ver si alguien me ayudaba para pasar la información de un datagrid a word. Recibí respuestas y código que me permitió esto, en concreto el código es:
On Error Resume Next
Dim MSWord As Word.Application
Dim Documento As Word.Document
Dim Parrafo As Table
Dim F, C As Double
Set MSWord = New Word.Application
MSWord.Visible = True
Set Documento = MSWord.Documents.Add
Set Parrafo = Documento.Tables.Add(Documento.Range(0, 0), DataGrid1.ApproxCount + 1, DataGrid1.Columns.Count)
For C = 0 To DataGrid1.Columns.Count
DataGrid1.Row = 0
Parrafo.Cell(1, C + 1).Range.InsertAfter DataGrid1.Columns(C).Caption 'agregar columnas
For F = 1 To DataGrid1.ApproxCount
Parrafo.Cell(F + 1, C + 1).Range.InsertAfter DataGrid1.Columns(C).Value
DataGrid1.Row = DataGrid1.Row + 1
Next F
Next C
Set MSWord = Nothing
Set Documento = Nothing
Set Parrafo = Nothing
End Sub
Al ejecutar el código funciona perfectamente si el número de registros no supera los que se ven en pantalla, es decir, si no aparece la barra de desplazamiento. Si hay barra de desplazamiento y para ver todos los datos hay que moverse sobre ella, falla en la instrucción:
DataGrid1.Row = 0, ya que no vuelve al comienzo, sino que se posiciona en la primera posición del datagrid, es decir, en la que aparece en pantalla no en la posición cero.
Me gustaría, si es posible, que me indicarais qué instrucción mueve la barra desplazadora del datagrid al comienzo.
Muchas gracias.
On Error Resume Next
Dim MSWord As Word.Application
Dim Documento As Word.Document
Dim Parrafo As Table
Dim F, C As Double
Set MSWord = New Word.Application
MSWord.Visible = True
Set Documento = MSWord.Documents.Add
Set Parrafo = Documento.Tables.Add(Documento.Range(0, 0), DataGrid1.ApproxCount + 1, DataGrid1.Columns.Count)
For C = 0 To DataGrid1.Columns.Count
DataGrid1.Row = 0
Parrafo.Cell(1, C + 1).Range.InsertAfter DataGrid1.Columns(C).Caption 'agregar columnas
For F = 1 To DataGrid1.ApproxCount
Parrafo.Cell(F + 1, C + 1).Range.InsertAfter DataGrid1.Columns(C).Value
DataGrid1.Row = DataGrid1.Row + 1
Next F
Next C
Set MSWord = Nothing
Set Documento = Nothing
Set Parrafo = Nothing
End Sub
Al ejecutar el código funciona perfectamente si el número de registros no supera los que se ven en pantalla, es decir, si no aparece la barra de desplazamiento. Si hay barra de desplazamiento y para ver todos los datos hay que moverse sobre ella, falla en la instrucción:
DataGrid1.Row = 0, ya que no vuelve al comienzo, sino que se posiciona en la primera posición del datagrid, es decir, en la que aparece en pantalla no en la posición cero.
Me gustaría, si es posible, que me indicarais qué instrucción mueve la barra desplazadora del datagrid al comienzo.
Muchas gracias.
Valora esta pregunta


0