View Single Post
  #14   Report Post  
Posted to microsoft.public.word.tables
Beth Melton Beth Melton is offline
external usenet poster
 
Posts: 1,380
Default Quickest method (from user's perspective) of populating a tabl

NOW we're getting somewhere. :-)

Can't you use something like:

Set oCell = Selection.Tables(1).Cell(1, 1)
Do While Not rs.EOF
oCell.Range.Text = rs.Fields("FieldName")
Set oCell = oCell.Next
rs.MoveNext
Loop

I tested this with around 400 records and it only took a second or two. Note
I also used an ADO recordset but that shouldn't matter that much.

Please post all follow-up questions to the newsgroup. Requests for
assistance by email cannot be acknowledged.

~~~~~~~~~~~~~~~
Beth Melton
Microsoft Office MVP

Coauthor of Word 2007 Inside Out:
http://www.microsoft.com/MSPress/boo...x#AboutTheBook

Word FAQ: http://mvps.org/word
TechTrax eZine: http://mousetrax.com/techtrax/
MVP FAQ site: http://mvps.org/

"ashwin" wrote in message
...
I have a DAO.Recordset I want to display in a table.
The table is already formatted.
I want to fill the table as quickly as possible from the user's
perspective
(the shortest amount of time as it will appear to the end-user while the
system is running).
--
ashwin


"Beth Melton" wrote:

I think the underlying problem with providing you with the answer you are
looking for is we still don't understand where you are getting the text
you
intend to place in each cell. IOW, other than populate a table with some
text we don't know what you are attempting to accomplish. If we don't
know
what you are trying to accomplish then we don't have any recommendations.
Perhaps you could provide some background on where you are getting the
text/data and what you want as the final result. Additionally, what you
mean
by "user's perspective" would be good to know too.


"ashwin" wrote in message
news
The text in each cell will be different.

I'm currently updating each cell individually, but I haven't tried
Greg's
.Next property/method -I imagine that has to be faster than indexing
into
the
table using the Cell object.

What I'm really trying to find out is: Does anyone know THE FASTEST
METHOD
(from the user's perspective) of accomplishing this?

I thought pasting would be even faster than snaking through each cell,
but
it doesn't seem like anyone wants to touch this one (or is it just a
silly
assumption?).
--
ashwin


"Beth Melton" wrote:

Is the string of characters for each cell the same? Is there a reason
you
can't modify the macro Greg provided to fit your needs? All you need
to
do
is change: oCell.Range.Text = i & "." to oCell.Range.Text = "Your
string
of
characters".


"ashwin" wrote in message
...
No problem, Beth, I'll do my best...

I have a table with one hundred rows and I know exactly what I want
each
cell to contain -a string of characters.

What is the quickest way to populate that table programmatically?

Accessing each cell individually is pretty slow, especially if I'm
doing
this for 200 tables. Excel allows you to populate a Sheet using an
array
and
I know Word will convert text formatted with tabs and carriage
returns
into a
table, but how do I quickly populate a table that already exists?

At this point, it looks like the answer may be the Windows
clipboard -which
I'm now trying to figure out how to access/populate from VBA.


Thank you for your patience,
--
ashwin


"Beth Melton" wrote:

Perhaps there is a faster way, however, we need more details on
what
you
are
attempting to accomplish. Populating a table with text is pretty
vague.
Word
isn't a mind reader and while it may appear that at times we are
mind
readers we're not. :-)