Solved

Word mail merge showing 12:00:00AM

Posted on 2014-07-23
4
1,741 Views
Last Modified: 2014-07-26
I have a spreadsheet that is used as the data file for a word mail merge.  This is done in vba.   Everything merges over just fine, except 1 column that keeps send over 12:00:00AM even though the spreadsheet data looks something like "Monthy Pet Fee - $20.00"

I have 2 columns like this that are updated by a recordset do while, and the merge field names are nonRent1, nonRent2, nonRent3.   nonRent1 comes out great, nonRent2 looks like the same data in nonRent1 but prints as 12:00:00am on the word document.  I have deleted the column and added it, I have changed the column format to text, and I don't know why I cant get this to work.   I have the code that creates the data and fills the fields, and then also the merge code to show you.  Hope someone can help.

thanks
 
    ' create a new file based on the merge document
    Set doc = wrdApp.documents.Add(sPathFileTemplate)
    
    ' Hide Word (actually just make sure it doesn't show)
    wrdApp.Visible = True

'    ' Connect the datasource to the merge document
   doc.MailMerge.OpenDataSource Name:=ActiveWorkbook.FullName, LinkToSource:=True, AddToRecentFiles:=False, SQLStatement:="SELECT * FROM `MergeRecords$`"
  
    ' Execute the merge
    With doc.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
'        With .DataSource
'            .FirstRecord = wdDefaultFirstRecord
'            .LastRecord = wdDefaultLastRecord
'        End With
        .Execute Pause:=False
    End With
'
'    Dim docloop As Document
'
'
'
'    For Each docloop In wrdApp.documents
'        myName = docloop

Open in new window



 rs.Open strSQL, con, adOpenStatic
      c = 37
    
        If rs.RecordCount > 0 Then
              Do Until rs.EOF
               Dim myItem As String
               myItem = CStr(rs(2)) & Space(1) & "-" & Space(1) & CStr(FormatCurrency(rs("amtofcharge")))
                Workbooks.Item(2).Sheets("MergeRecords").Cells(myline, c) = myItem
                c = c + 1
                rs.MoveNext
            Loop
        Else
            Workbooks.Item(2).Sheets("MergeRecords").Cells(myline, c) = "Not Applicable"
        End If
    

Open in new window

0
Comment
Question by:mgmhicks
  • 2
4 Comments
 
LVL 76

Expert Comment

by:GrahamSkan
Comment Utility
It's not clear what value is added by using VBA.

I think that we need to see the Mail Merge main document and a sample of the datasource.
0
 

Author Comment

by:mgmhicks
Comment Utility
thank you for the response.  As it turned out I added code to put a least a space in the field, rather than leave it blank and that worked.  Apparently with the field/column blank it looked at the column as something else, but when I started putting in = space(1), in the column then it started working for all the columns.  Something to keep in mind for the future.
0
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
Comment Utility
Excel columns don't have a data type as such, but the cells do have NumberFomat property which MaiMerge  would take as a clue.
0
 
LVL 31

Expert Comment

by:Helen_Feddema
Comment Utility
12:00:00 AM is usually what you get for a blank Date field.  Sometimes you get the whole date, usually 12/30/1899, which can be disconcerting in a document.  It seems that Excel is somehow processing this cell as a Date value.  There are often data type conversion problems between Access and Excel, especially with dates.
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

A little background as to how I came to I design this code: Around 5 years ago I designed an add-in that formatted Excel files to a corporate standard, applying different cell colours and font type depending on whether the cells contained inputs,…
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…
This Micro Tutorial demonstrate the bugs in Microsoft Excel for Mac with Pivot Charts.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now