[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 352
  • Last Modified:

Macro upgrade from word 2003 to word 2007

I have a customer who is upgrading from word 2003 to Word 2007.  They have a macro that writes a unique id and initials etc into the footer of the word document.

I can't seem to get this working.  I'm not a developer and ther person who wrote it orginally is no longer available.

i'm getting the following error message.

user defined type not defined.  Resolved this by adding in the reference "Microsoft DAO 3.51 Object Library.

Now getting the following error:

Complile error:  Invalid use of New keyword.

The following section is highlighted:

Function GetID() As String
On Error GoTo eh
    Dim cn As Connection, rs As Recordset
    Set cn = New Connection
    cn.Provider = "microsoft.jet.oledb.4.0"
    cn.ConnectionString = "\\fileserver\counter$\id.mdb"
    cn.Open
    Set rs = New Recordset
    rs.Open "SELECT * FROM idTable", cn, adOpenStatic, adLockOptimistic
    rs.AddNew
    rs.Update
    rs.MoveLast
    GetID = rs("ID")
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
    Exit Function
eh:
    MsgBox "An error occured " & Err.Description, vbInformation
End Function
0
mccannit
Asked:
mccannit
2 Solutions
 
MINDSUPERBCommented:
The code you posted has reference to an access database which is remotely connected into your Word application. Ensure that the path of the database is correctly identified.

Sincerely,
Ed
0
 
mccannitAuthor Commented:
The path to the access database is fine.

Set cn = New Connection is the line that gets highlighted.    
0
 
MINDSUPERBCommented:
Try to use ADO reference rather than DAO.

Sincerely,
Ed
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
GrahamSkanRetiredCommented:
It looks as if it is written for ADO, not DAO. Try a reference to the Microsoft Active Data Objects library instead.
0
 
mccannitAuthor Commented:
that seemed to do the trick however I'm getting another error message.

I had to remove the "on error goto" to actually see the error message.

Run-time error '6':

Overflow.

I've included the actual macro "new file".  It's highlighting

strFooterText = CStr(Format(CInt(strId), "0000000")) _
                & "/" & strUser & "/" & strRequestee & "/" & strCaseRef & "/" & strDate
Sub NewFile()
    Dim docType As Integer, strRequestee As String
    Dim strCaseRef As String, strFileName As String
    Dim strId As String, strFooterText As String
    Dim strUser As String, strDate As String
    Application.ScreenUpdating = False
    docType = MsgBox("Is this a typing file, if so click the yes button, " _
    & vbCrLf & "if not click the no button", vbYesNo + vbQuestion, "Typing document?")
    If docType = vbYes Then
        frmLocation.Show vbModal
        'MsgBox strLocation
        strRequestee = InputBox("Enter the initials of the author", "Author Initials")
        If strRequestee = "" Then
            MsgBox "You Cancelled", vbInformation
        Else
            strCaseRef = InputBox("Enter the case reference", "Case reference", "Case Reference")
            If strCaseRef = "" Then
                MsgBox "You Cancelled", vbInformation
            Else
                strUser = Application.UserInitials
                strDate = CStr(Format(Date, "dd/mm/yy"))
                frmTemplate.Show vbModal
                Documents.Add strTemplate, False, 0, True
                strFileName = strLocation
                strId = GetID()
                'MsgBox strId
                strFooterText = CStr(Format(CInt(strId), "0000000")) _
                & "/" & strUser & "/" & strRequestee & "/" & strCaseRef & "/" & strDate
                'MsgBox strFooterText
                strFileName = strId & "_" & strRequestee & "_" & strCaseRef & "_" & strUser
                ActiveWindow.ActivePane.View.Type = wdPrintView
                ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
                Selection.TypeText strFooterText
                Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
                Selection.WholeStory
                With Selection.Font
                    .Name = "Arial"
                    .Size = 8
                End With
                ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
                Application.ChangeFileOpenDirectory strLocation
                ActiveDocument.SaveAs strFileName
            End If
        End If
    Else
        'look up template folder
        frmBasicTemplates.Show vbModal
        Documents.Add strTemplate, False, 0, True
    End If
    Application.ScreenUpdating = True
    Exit Sub
    ActiveDocument.Close False
End Sub

Open in new window

0
 
RomAniA12Commented:
You have a bunch of error's in your code that renders it useless..
0
 
MINDSUPERBCommented:
I suspect that your connection to the DB is not properly established. Check it out.

Try to change this line in 25: strId = GetID() into
strId = 1

Run the macro and see what happens.

Sincerely,
Ed
0
 
mccannitAuthor Commented:
ok.  the code worded fine in word 2003.  Any suggestions on how to make this work on Word 2007?
0
 
mccannitAuthor Commented:
That worked a treat MINDSUPERB.  Thank you very much for all your help.
0
 
mccannitAuthor Commented:
Thanks.
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now