A long one, sorry

diasflac

Registered User.
Local time
Today, 01:17
Joined
May 13, 2013
Messages
45
Everything on the database is working and the funtion, as you can see, with the help of Pr2-eugin, also works. This is just cleaning up, bug fixing and making everything run easily rather than what happens in the screen shots below.

I am trying to get a database to produce a letter using fields on a form, in a mail merge. Although I've managed to do this, I'm running into quite a few problems.

I've attached the code here for the form:

Code:
Private Sub Print_Click()
    DoCmd.OutputTo acOutputQuery, "RFQ Query", acFormatXLS, "H:\Request for Quotation\Test.xls"
    MergeToWord "H:\Request For Quotation\Test.doc", "H:\Request for quotation\Test.xls"
    DoCmd.Close , "H:\Request for quotation\test.doc", acSaveNo
End Sub

And the code for the ToWord module:

Code:
Public Sub MergeToWord(strDocName As String, sourceName As String)
    Dim objApp As Word.Application, tmpSheetName As String, saveAsName As String
    Dim splitPos As Long

    'Open Mailmerge Document, Start Word
    Set objApp = CreateObject("Word.Application")
    DoCmd.Hourglass False
    
    'This step will obtain the sheet name from the EXCEL file.
    tmpSheetName = Mid(sourceName, InStrRev(sourceName, "\") + 1)
    tmpSheetName = Mid(tmpSheetName, 1, InStr(tmpSheetName, ".") - 1)
    
     'saveAsName = "H:\request for quotation\RFQ.doc" - Removed this, to be put back if mail-merge errors page can be corrected.
    
    With objApp
        .Visible = True                             'Make it visible
        .Documents.Open strDocName                  'Open the Mailmerge Document
        .ActiveDocument.MailMerge.OpenDataSource Name:=sourceName, ReadOnly:=True, LinkToSource:=True, SQLStatement:="SELECT * FROM [" & tmpSheetName & "$]"
        .ActiveDocument.MailMerge.Execute Pause:=False
    End With
exitOnErr:
    Set objApp = Nothing
    Exit Sub
ErrorHandler:
    MsgBox "Some error occured !! " & vbNewLine & Err.Number & " : " & Err.Description
    DoCmd.Hourglass False 'Cursor back to normal
    Resume exitOnErr
End Sub

When this is run the following happens.

Screen shot 1:

A box come up asking for which table type to use and I have to go into options and select system tables too then the query, anything I can add to make this automatic, so a user doesn't have to select this?

Screen shot 2:

When the word document opens, it opens the read-only template as well as the merged document. I'd like the template to be closed automatically or only one document to be opened. How can I amend my code to do this?

Screen shot 3:

A third word document displays with mail merge errors, even though there are none. How do i stop this from popping up as well?

Thank you in advance!
 

Attachments

  • Screen1.jpg
    Screen1.jpg
    94.3 KB · Views: 116
  • Screen2.jpg
    Screen2.jpg
    94.1 KB · Views: 111
  • Screen3.jpg
    Screen3.jpg
    82.8 KB · Views: 115

Users who are viewing this thread

Back
Top Bottom