![]() |
|
#1
|
|||
|
|||
|
Hi all I am new here,
and have already a question regardig a macro.. Unfortunatelly I am pretty new to word vba and can not finde a solution to this problem. I like to write data from access to word .. the following code I got from a book but I recieve a error object not found.. Code:
Private Sub FillWithTypeText()
On Error GoTo ErrorHandler
Dim appWord As Word.Application
Dim doc As Word.Document
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Set appWord = GetObject(, "Word.Application")
Set doc = appWord.Documents.Add
'insert format document titel
With appWord.Selection
.TypeText "Aktuelle Kontakte mit " _
& Format(Date, "Long Date")
.TypeParagraph
.MoveLeft Unit:=wdWord, count:=11, _
Extend:=wdExtend
.Font.Size = 14
.Font.Bold = wdToggle
.MoveDown Unit:=wdLine, count:=1
End With
'insert two column table to hold contact data(one column for contact names, the other for user comments)
doc.Tables.Add Range:=Selection.Range, _
NumRows:=1, _
NumColumns:=2, _
DefaultTableBehavior:=wdWord9TableBehavior, _
AutoFitBehavior:=wdAutoFitFixed
With appWord.Selection.Tables(1)
If .Style <> "Table Grid" Then
.Style = "Table Grid"
End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = False
End With
'insert contact Data from Access table into Word table:
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("tblKunden")
Do While Not rst.EOF
With appWord.Selection
.TypeText rst![kunKundenAnzeigen]
.MoveRight Unit:=wdCell, count:=2
End With
rst.MoveNext
Loop
'Delete the last names alphabetically:
doc.Tables(1).Select
appWord.Selection.Sort excludeheader:=False, _
fieldnumber:="Column 1", _
sortfieldtype:=wdSortFieldAlphanumeric, _
SortOrder:=wdSortOrderAscending
ErrorHandlerExit:
Set appWord = Nothing
Exit Sub
ErrorHandler:
If Err = 429 Then
'Word is not running: open Word with createObject:
Set appWord = CreateObject("Word.Application")
Resume Next
Else
MsgBox "Error No: " & Err.Number _
& " ; Description: " & Err.Description
Resume ErrorHandlerExit
End If
End Sub
So what am I missing here in this code? The code is writen in VBA 2007 ... and I got 2010 but not sure if that makes a difference. Maybe someone knows what has to be changed so the code can run. Many thanks in advance!! Silentwolf :-) |
|
#2
|
||||
|
||||
|
The following works fine for me:
Code:
'insert format document titel
With appWord.Selection
.TypeText "Aktuelle Kontakte mit " & Format(Date, "Long Date")
.TypeParagraph
.MoveLeft Unit:=wdWord, Count:=11, Extend:=wdExtend
.Font.Size = 14
.Font.Bold = wdToggle
.MoveDown Unit:=wdLine, Count:=1
'insert two column table to hold contact data(one column for contact names, the other for user comments)
.Tables.Add Range:=.Range, NumRows:=1, NumColumns:=2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
With .Tables(1)
.Style = "Table Grid"
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = False
End With
End With
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#3
|
|||
|
|||
|
Hi macropod,
thank you for your reply! So did you leave out the error handler with your code? I have tried your code but with error handler and get still the same message.. Cheers |
|
#4
|
||||
|
||||
|
I didn't bother with the error-handling, which should not have any effect on the error you say you were getting. Indeed, the code could be further simplified. For example' leaving aside all the DAO-related code:
Code:
Sub Demo()
Dim appWord As New Word.Application
appWord.Documents.Add
'insert format document titel
With appWord.Selection
.TypeText "Aktuelle Kontakte mit " & Format(Date, "Long Date")
.TypeParagraph
.MoveLeft Unit:=wdWord, Count:=11, Extend:=wdExtend
.Font.Size = 14
.Font.Bold = wdToggle
.MoveDown Unit:=wdLine, Count:=1
'insert two column table to hold contact data(one column for contact names, the other for user comments)
.Tables.Add Range:=.Range, NumRows:=1, NumColumns:=2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
With .Tables(1)
.Style = "Table Grid"
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = False
End With
End With
appWord.Visible = True
End Sub
If I were trying to start a new Word session only if Word wasn't already running, I'd use late binding code like: Code:
Sub Demo()
Dim wdApp As Object, wdDoc As Object, bStrt As Boolean
' Test whether Word is already running.
On Error Resume Next
bStrt = False ' Flag to record if we start Word, so we can close it later.
Set wdApp = GetObject(, "Word.Application")
'Start Word if it isn't running
If wdApp Is Nothing Then
Set wdApp = CreateObject("Word.Application")
If wdApp Is Nothing Then
MsgBox "Can't start Word.", vbExclamation
Exit Sub
End If
' Record that we've started Word, so we can terminate it later.
bStrt = True
End If
On Error GoTo 0
wdApp.Visible = True
End Sub
Code:
Sub Demo()
Dim wdApp As Word.Application, wdDoc As Word.Document, bStrt As Boolean
' Test whether Word is already running.
On Error Resume Next
bStrt = False ' Flag to record if we start Word, so we can close it later.
Set wdApp = GetObject(, "Word.Application")
'Start Word if it isn't running
If wdApp Is Nothing Then
Set wdApp = CreateObject("Word.Application")
If wdApp Is Nothing Then
MsgBox "Can't start Word.", vbExclamation
Exit Sub
End If
' Record that we've started Word, so we can terminate it later.
bStrt = True
End If
On Error GoTo 0
wdApp.Visible = True
End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#5
|
|||
|
|||
|
Hi,
thanks again for your reply! I will have a look at your code in detail tomorrow! Cheers! |
|
#6
|
||||
|
||||
|
SilentWolf
If the error is occurring on the line you highlighted in Red then the most obvious conclusion would be that the Table style named "Table Grid" does not exist in your document. In English versions of Word, this would surprise me because it is a built-in style name. However, perhaps your document is not created in English and that stylename is something else in your language. You can change the code to any Table stylename that does exist in your document.
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
|
#7
|
|||
|
|||
|
Hi Guessed,
thanks for your reply! The code works now as I did change or added a line of code to reference to the active document. However as I am pretty new to this forum I have not yet figured out how to set the solved icon to my threat. Maybe someone could let me know so I am not bothering anyone with a solved threat here ![]() Many thanks Silentwolf |
|
#8
|
|||
|
|||
|
Oh this is an old thread.
it must be getting late here lol! Sorry I completly forogt about this threat and thought it is a new one!! My appologies! I guess I will look into it again and go through all your suggestions once again and try to work it out! Cheers for helping! Silentwolf |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| VB runtime error in debugger...please help | rivrgrl7 | Excel Programming | 0 | 08-03-2016 07:58 AM |
Runtime error R6034
|
tallon | Excel | 4 | 07-08-2016 09:24 AM |
runtime error 1004
|
gbaker | Excel Programming | 11 | 06-06-2012 05:23 AM |
Runtime error 91
|
waldux | Word VBA | 1 | 03-04-2011 11:25 PM |
| Runtime error 5487 - Word cannot complete the save to to file permission error | franferns | Word | 0 | 11-25-2009 05:35 AM |