ddelauter
asked on
Paste or Insert Recordset into MS Word Table
I would like to be able to paste or insert data from an adodb recordset into an MS Word (2003). I have a Word template that contains several tables that I populate one row at a time from a recordset. The tables start out with two rows, a header row, and a blank row. The first blank row is populated, field by field, then a new row is inserted as needed. This works at an acceptable speed unless the recordset contains several thousand records.
For recordsets that I don't want to modify, is there a way to insert the entire recordset (excluding the header) into a table, starting at row 2? Can it add additional rows automatically?
For recordsets that I don't want to modify, is there a way to insert the entire recordset (excluding the header) into a table, starting at row 2? Can it add additional rows automatically?
ASKER
Thanks. I will massage this and see if it works.
ASKER
irudyk,
I've tried this a few ways. The best result so far (using code below) gives me a table, attached to the existing table header row, but the format is not inherited by the new rows (see attached sample.gif). I could add some code to reformat, but I would like to avoid that since I have several different tables wih different layouts.
Using Selection.Endkey creates a table within a table (see sample2.gif). Also, I removed wdStory from Selection.EndKey. That placed the cursor at the bottom of the entire document.
I've also tried adding a row, selecting row before paste, etc, but no joy.
I have also performed the code below, then cut the data from the new table, deleted all of the rows, inserted a new row below the existing table, then pasted the data. This did work, but I am not sure all of that would speed up the process (and it seems like a messy method).
Thanks. DD
sample2.gif
I've tried this a few ways. The best result so far (using code below) gives me a table, attached to the existing table header row, but the format is not inherited by the new rows (see attached sample.gif). I could add some code to reformat, but I would like to avoid that since I have several different tables wih different layouts.
Using Selection.Endkey creates a table within a table (see sample2.gif). Also, I removed wdStory from Selection.EndKey. That placed the cursor at the bottom of the entire document.
I've also tried adding a row, selecting row before paste, etc, but no joy.
I have also performed the code below, then cut the data from the new table, deleted all of the rows, inserted a new row below the existing table, then pasted the data. This did work, but I am not sure all of that would speed up the process (and it seems like a messy method).
Thanks. DD
Set dtable = ActiveDocument.Tables(10)
Dim sTemp As String
sTemp = adorst.GetString(2, -1, Chr(9))
'code to go to the end of the table heading row
dtable.Select
Selection.MoveDown Unit:=wdLine, Count:=1 'THIS WORKS THE CLOSEST
'Selection.EndKey
'Insert the data into the Word document
Selection.Text = sTemp
'Convert the text to a table and format the table
Selection.ConvertToTable Chr(9)
'Remainder of you code here
sample.gifsample2.gif
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Open in new window