How do I downgrade my MS Access version?

Posted on 2009-05-19
Last Modified: 2012-05-07
I have an application that was developed using the version of MS Access on my machine (MS Access Version 12.0.6211.1000). Unfortunately it won't work properly on my user's version which appears to be older based on the version number (12.0.4518.1014). In have therefore created a virtual machine and loaded my original version of MS Access on it but it is still a different version to my users. My original version is Version 12.0.6304.5000 and my users have Version 12.0.4518.1014

Is there any way I can downgrade to their earlier version? I cannot realistically get my users to upgrade.
Question by:Rob4077
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 3
LVL 84
ID: 24428019
Your version simply has SP1 installed; it's quite common to require endusers to have the most recent version of Access, including service packs and assuming they are running licensed copies of Access the upgrade is free.

The versions for msaccess.exe for 2007 are:

Original Version:      12.0.4518.1014
Service Pack 1:      12.0.6211.1000

I'm not sure where you're getting the 6304.5000 from unless you've installed some hotfixes.

That said: what exactly isn't "working properly" on the end user machine? Unless you're doing something that was fixed by the Service Pack, your database should run on 2007 or 2007 + SP1 ... and if your database REQUIRES SP1, then it requires it, and therefore your users will be required to upgrade.

LVL 84
ID: 24428022

Author Comment

ID: 24428203
Thanks for your comments.

I have been using the function at the end of this post to determine the version number being used.  When I use that function or the one on the link you provided I come up with 12.0.6211.1000 for my working machine. However if I run that function on the virtual machine I created with the version of Access 2007 installed from my original install discs (without applying any upgrades) I come up with 12.0.6304.5000. However if I check the virtual machine using the MS Method it shows 12.0.4518.1014.

<<what exactly isn't "working properly" on the end user machine?>> One of the forms isn't displaying a subform. I have no idea why so I was hoping to install their version of MS Access on my machine so I could try to figure out why it won't display. Based on what your link shows, my virtual machine doesn't have the service pack installed either, even though the build numbers are different, yet the subform displays on that version correctly. So could it be that I am using a feature that wasn't available in the earlier build or maybe I haven't included referenced to the right addin????? Any suggestions?

I would dearly love to require that they upgrade to the latest service pack but the IT department won't allow that so I need to get my application to work on the version they are using.

Function GetOSInformation() As String
' Culled from
Dim objWMIService As Object
Dim colItems As Object
Dim objItem As Object
'Dim sPath As String
Dim lStart As Long
Dim l As Long
Dim sDetails As String

    Set objWMIService = GetObject("winmgmts:\\" & "." & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", &H10 + &H20)

    For Each objItem In colItems
        sDetails = objItem.Caption & " " & objItem.CSDVersion & " " & objItem.Version & " " & objItem.BuildNumber
        lStart = 1
        For l = 1 To Len(Environ("Path"))
            If Mid(Environ("Path"), l, 1) = ";" Then
                'we have found the end of a path so test it
                If Dir(Mid(Environ("Path"), lStart, l - lStart) & "\MSAccess.exe") <> "" Then
                    sDetails = sDetails & " MS Access Version " & _
                      fGetProductVersion(Dir(Mid(Environ("Path"), lStart, l - lStart) & "\MSAccess.exe"))
                End If
                lStart = l + 1
            End If
        Next l

    GetOSInformation = sDetails
End Function
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Expert Comment

ID: 24428229
The subform sounds like it could be a missing reference.  You should check tools > rerferences and see if anything is prefixed MISSING on the machie where the subform is missing.  

Decomplie has also helped me in these situations as well.

Start > Run

msaccess.exe /decompile "C:\path\db1.mdb"

Expert Comment

ID: 24428242
One last thought is that if the missing "subform" is actually a missing ActiveX control, the machine could be missing that control in the regisrty.  In this case you would have to copy the missing control to the machine and register it using Regsrv32.

I had this happen on Vista Machines that no longer has the Rich Text Box control installed.

Author Comment

ID: 24428677
Thanks for the suggestions. No missing references and a decompile was not needed. I found the problem was with the subform's recordsource.  The SQL statement I had used included a PARAMETER that the old version of MS Access was unhappy with. When I removed that PARAMETER all went well. Yet the subform worked fine on both builds of MS Access.
Therefore I go back to my original question and wonder if there is any way anyone knows of where I can get hold of a version of MS Access that is a build apparently older than the one that is on my install discs so I don't have to develop and test every modification on a machine at one of my users' sites?

Expert Comment

ID: 24428733
I would love to see a version specific parameter.  I have never heard of such. (just for my own selfish future reference of course)

Glad you found your problem!

Author Comment

ID: 24428759
Following is the SQL code I was using for the subform. On both the Version 12.0.6211.1000and Version 12.0.6304.5000 the code worked but on Version 12.0.4518.1014 the subform would not display until I removed the section of code from PARAMETERS to the semicolon (;) before SELECT. Why, I have no idea, but that was the only change I made and it worked.
PARAMETERS [Forms]![frmMainRosterPrep]![Roster Preparation Form].[Form]![LstWeeks] DateTime;
SELECT tblSubTimeEntries.*, tblDoing.MinDuration, tblDoing.BreaksNotRequired, tblTimeEntries.ClosedForEditing, tblTimeEntries.Notified
FROM tblTimeEntries RIGHT JOIN (tblSubTimeEntries LEFT JOIN tblDoing ON tblSubTimeEntries.DoingCode = tblDoing.DoingCode) ON (tblTimeEntries.ShiftNum = tblSubTimeEntries.ShiftNum) AND (tblTimeEntries.SAPNum = tblSubTimeEntries.SAPNum) AND (tblTimeEntries.Start = tblSubTimeEntries.Start)
WHERE (((tblTimeEntries.FortnightCommencing)=[Forms]![frmMainRosterPrep]![Roster Preparation Form].[Form]![LstWeeks]))
ORDER BY tblSubTimeEntries.StartDate;
LVL 84

Accepted Solution

Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 500 total points
ID: 24430057
Is "DateTime" the name of your Parameter, or the name of a control on your form? Either way, try renaming it ...

I'm sure you could purchase an "original" copy of 2007 (i.e. pre-SP1), or you can purchase an MSDN subscription, which gives you access to every app/version of everything MS produces.

Author Comment

ID: 24432166
Thanks for the info on the subscription
When I created the parameter I used the Query editor and selected the Parameters button on the ribbon. I entered the name and the type was DateTime which it translated into the SQL of the query as above.

Featured Post

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I see at least one EE question a week that pertains to using temporary tables in MS Access.  But surprisingly, I was unable to find a single article devoted solely to this topic. I don’t intend to describe all of the uses of temporary tables in t…
Did you know that more than 4 billion data records have been recorded as lost or stolen since 2013? It was a staggering number brought to our attention during last week’s ManageEngine webinar, where attendees received a comprehensive look at the ma…
In Microsoft Access, learn the trick to repeating sub-report headings at the top of each page. The problem with sub-reports and headings: Add a dummy group to the sub report using the expression =1: Set the “Repeat Section” property of the dummy…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

733 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