Repeating a table on a page

T

trezraven

Hello everyone. I am using Microsoft Office 2007 and I have created a
form that pulls information from an Access database and puts it in a
table. I want to have 3 tables per page that are populated with
information from the database. My dilemma is I can populate one
table, but for some reason the table will not repeat for the next
recordset.

I get runtime error '4605': this method or property is not availavel
because the object refers to the end of a table row. The following
line of code is what is highlighted.

ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=8,
NumColumns:=2, _
DefaultTableBehavior:=wdWord9TableBehavior,
AutoFitBehavior:=wdAutoFitFixed

Here is a copy of my code.

rs.MoveFirst
If Not rs.EOF Then
Do Until rs.EOF
Opinion.txtAppellant = rs.Fields("Appellant").Value & " "
Opinion.txtAppellee = rs.Fields("Appellee").Value & " "
Opinion.txtCaseNumber = rs.Fields("CaseNo").Value & " "
Opinion.txtOpinionDate = rs.Fields("Opinion_Date").Value & " "

'*****Hide the form so the document can come up*****
Opinion.Hide

'****Insert table*****
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=8,
NumColumns:=2, _
DefaultTableBehavior:=wdWord9TableBehavior,
AutoFitBehavior:=wdAutoFitFixed

With Selection.Tables(1)
If .Style <> "Table Grid" Then
.Style = "Table Grid"
End If

.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = True
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = True
End With

Selection.Tables(1).Rows.HeightRule = wdRowHeightAtLeast
Selection.Tables(1).Rows.Height = InchesToPoints(0.3)
Selection.Tables(1).Range.Font.AllCaps = True
Selection.Tables(1).Range.Font.Size = 14
Selection.Tables(1).Range.Font.Name = "Times New Roman"
Selection.Range.Cells(1).VerticalAlignment = wdCellAlignVerticalTop

With Selection.Tables(1)
.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
.Borders(wdBorderRight).LineStyle = wdLineStyleNone
.Borders(wdBorderVertical).LineStyle = wdLineStyleNone
.Borders(wdBorderTop).LineStyle = wdLineStyleNone
.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
.Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone
.Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone
.Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle
.Borders.Shadow = False
End With
'*****Add the formatting for the document*****
With Selection
.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.SelectRow
.Cells.Merge
.TypeText Text:="case of " & txtAppellant.Value
.MoveDown Unit:=wdLine, Count:=1
.SelectRow
.Cells.Merge
.TypeText Text:="vs. " & txtAppellee.Value
.MoveDown Unit:=wdLine, Count:=1
.TypeText Text:="docket no. " & txtCaseNumber.Value
.MoveRight Unit:=wdCell
.TypeText Text:="Opinion Filed " & txtOpinionDate.Value
.MoveDown Unit:=wdLine, Count:=1
.SelectRow
.Cells.Merge
.TypeText Text:="rehearing petition filed"
.MoveDown Unit:=wdLine, Count:=1
.SelectRow
.Cells.Merge
.TypeText Text:="rehearing denied"
.MoveDown Unit:=wdLine, Count:=1
.SelectRow
.Cells.Merge
.TypeText Text:="rehearing granted"
.MoveDown Unit:=wdLine, Count:=1
.SelectRow
.Cells.Merge
.TypeText Text:="released for publication"
.MoveDown Unit:=wdLine, Count:=1
.TypeText Text:="date"
.MoveRight Unit:=wdCell
.TypeText Text:="Signed"
rs.MoveNext
End With
Loop
End If

Thanks in advance for your assistance.
 
D

Doug Robbins - Word MVP

I would suggest that you avoid using the .Selection object and make use of
the .Range object instead.

On the assumption that the tables are being added to the end of the
document, you should use something like

Dim trange as Range
Dim ntable as Table
rs.MoveFirst
If Not rs.EOF Then
Do Until rs.EOF
Opinion.txtAppellant = rs.Fields("Appellant").Value & " "
Opinion.txtAppellee = rs.Fields("Appellee").Value & " "
Opinion.txtCaseNumber = rs.Fields("CaseNo").Value & " "
Opinion.txtOpinionDate = rs.Fields("Opinion_Date").Value & " "

'*****Hide the form so the document can come up*****
Opinion.Hide

'****Insert table*****
Set trange = ActiveDocument.Range
trange.Collapse wdCollapseEnd
Set ntable = ActiveDocument.Tables.Add Range:=trange, NumRows:=8,
NumColumns:=2, _
DefaultTableBehavior:=wdWord9TableBehavior,
AutoFitBehavior:=wdAutoFitFixed

With ntable
If .Style <> "Table Grid" Then
.Style = "Table Grid"
End If

.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = True
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = True
.Rows.HeightRule = wdRowHeightAtLeast
.Rows.Height = InchesToPoints(0.3)
.Range.Font.AllCaps = True
.Range.Font.Size = 14
.Range.Font.Name = "Times New Roman"
.Cells(1).VerticalAlignment = wdCellAlignVerticalTop

'I don't know where the selection is at this point; you must specify the
row and column number

etd


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
T

trezraven

I would suggest that you avoid using the .Selection object and make use of
the .Range object instead.

On the assumption that the tables are being added to the end of the
document, you should use something like

Dim trange as Range
Dim ntable as Table
rs.MoveFirst
If Not rs.EOF Then
Do Until rs.EOF
Opinion.txtAppellant = rs.Fields("Appellant").Value & " "
Opinion.txtAppellee = rs.Fields("Appellee").Value & " "
Opinion.txtCaseNumber = rs.Fields("CaseNo").Value & " "
Opinion.txtOpinionDate = rs.Fields("Opinion_Date").Value & " "

'*****Hide the form so the document can come up*****
Opinion.Hide

'****Insert table*****
Set trange = ActiveDocument.Range
trange.Collapse wdCollapseEnd
Set ntable = ActiveDocument.Tables.Add Range:=trange, NumRows:=8,
NumColumns:=2, _
DefaultTableBehavior:=wdWord9TableBehavior,
AutoFitBehavior:=wdAutoFitFixed

With ntable
If .Style <> "Table Grid" Then
.Style = "Table Grid"
End If

.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = True
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = True
.Rows.HeightRule = wdRowHeightAtLeast
.Rows.Height = InchesToPoints(0.3)
.Range.Font.AllCaps = True
.Range.Font.Size = 14
.Range.Font.Name = "Times New Roman"
.Cells(1).VerticalAlignment = wdCellAlignVerticalTop

'I don't know where the selection is at this point; you must specify the
row and column number

etd

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP

















- Show quoted text -

I made the changes you suggested and now I am getting Compile Error:
expected end of statement. Range is highlighted on the Set ntable
line of code.

Dim trange As Range
Dim ntable As Table

Set trange = ActiveDocument.Range
trange.Collapse wdCollapseEnd

Set ntable = ActiveDocument.Tables.Add Range:=trange, NumRows:=8,
NumColumns:=2, _
DefaultTableBehavior:=wdWord9TableBehavior,
AutoFitBehavior:=wdAutoFitFixed
 
T

trezraven

I made the changes you suggested and now I am getting Compile Error:
expected end of statement. Range is highlighted on the Set ntable
line of code.

Dim trange As Range
Dim ntable As Table

Set trange = ActiveDocument.Range
trange.Collapse wdCollapseEnd

Set ntable = ActiveDocument.Tables.Add Range:=trange, NumRows:=8,
NumColumns:=2, _
DefaultTableBehavior:=wdWord9TableBehavior,
AutoFitBehavior:=wdAutoFitFixed- Hide quoted text -

- Show quoted text -


I figured it out. I just had to add parenthesis.

Set trange = ActiveDocument.Range
trange.Collapse wdCollapseEnd

Set ntable = ActiveDocument.Tables.Add(Range:=trange, NumRows:=8,
NumColumns:=2, _
DefaultTableBehavior:=wdWord9TableBehavior,
AutoFitBehavior:=wdAutoFitFixed)

Thanks again!!!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top