Problem after updating to .accdb

Gkirkup

Registered User.
Local time
Today, 11:18
Joined
Mar 6, 2007
Messages
628
I have a large application which runs fine in 2003. I am in the process of updating it to 2010 and .accdb.
I have updated a test system (front end and back end) to .accdb, but now hardly any of the programs work. I try to display a form and I get many 'Enter parameter value' error messages. All of this worked fine in 2003.
Is there something that I am missing? It seems as thought some of the queries are not working.

Robert
 
When you converted the BE to an .accdb you broke the links to the BE tables. Did you relink the FE to the BE using the new BE name?
 
Pat: Yes, I removed the BE links before converting the front end, and then reset the links to the .accdb BE after. I can see all of the linked tables in the front end, and all looks OK. I am mystified as to what may be wrong. Should 2003 programs work OK in .accdb, or are there limitations?

Robert
 
NO!!!! A2003 CANNOT link to newer tables. Think about it. How could the developers have known in 2003 what the 2007 format would look like? Applications can be made to be backward compatable since we know what happened in the past but no application can be forward compatable since we have no way to predict the future. This is not an Access problem. It is simply reality.
 
Pat: Understood. I didn't explain my question very well.
What I meant was, I have programs which work perfectly in 2003. After I update my back end and front end to .accdb, should those programs still work perfectly? Or are there significant changes that I need to make when I get to .accdb?
None of my programs seem to be working. All I have done so far is to convert my FE and BE to accdb.

Robert
 
I'm wondering if you are getting caught on differences in the references. I had some similar problems that were resolved by switching to the newest DAO libraries. Can't remember the details, but you should be aware that Microsoft will sometimes change the .DLL reference files on you without telling you too much about it.
 
Doc Man: I don't use DAO, does that make any difference? It seems as though nothing works. As soon as I try to display a form, I get an 'Enter parameter value' message. I get that many times, and then Access crashes.
Does that indicate that it can't find the underlying queries? Or the tables? I could try reloading both. Just that this is not an isolated error, it happens to almost all forms.

Robert
 
What version of Windows are you using?
Do you have multiple versions of Office installed?

I was using Vista when I first installed A2007 on a PC that also had A2003. After a week, I was ready to toss A2007 out the window because I was getting truly bizarre errors. After days of searching, I discovered the problem. We all know that Microsoft's children don't play well together but in combination with Vista and newer OS', the problem is fatal. When you switch versions, you get the "installing" message as one version attempts to take over the registry from another. The problem with Vista and newer OS' is that because of security, this "takeover" may not be complete so you may end up thinking you are running one version of Access but many of the libraries you are using actually belong to a different version. There were three options offered as solutions.
1. Modify the registry - I don't remember what keys needed to be modified but this didn't work for me because I was distributing an app to the general public and didn't have the ability to modify their registry.
2. Create shortcuts for each application that includes the full path of the Access version you want to run the app and set the shortcut to run as admin. - This works for users because they have a limited number of applications they use and they don't do development.
3. Create a shortcut for each Access version with permission to run as admin. - This is what I chose for myself because it gave me the most flexibility. So, rather than double-clicking on a database, I would choose the Access shortcut for the version I wanted to run and then choose the app.

Beyond this issue which was caused by security permissions, I haven't had any compatibility issues. If it works in an older version, it works in a newer version as long as it compiles. You will run into code that no longer compiles because of changes to VBA but once you get past that, the compatibility is actually remarkable.
 
I found that many of the queries had lost their field names, and were showing EXPR1, EXPR2 etc, in place of field names. I deleted all of the queries and reloaded them, and now the application now works, though I think there is some tweaking.
One obvious change is that all forms fill the entire screen, even Switchboard. There is no setting to reduce the displayed for size. Is there a way to change that behavior, or do I have to go into every form and change the settings? I have probably 150 forms.

Robert
 
Pat: What sort of changes are there to VBA? How will I know if a change is needed? The form will not display?

Robert
 
I missed this error message at first - 'Enter parameter value' - but I'll say that 99.99% of the time, you have a spelling error. But you found the other 0.01% when you pointed out that your queries had lost some field names. That is an almost certain guarantee that you will get the 'Enter parameter value' input box. It simply means Access can't find something. So the question that really matters is where something got lost (i.e. in which step).

Is there a chance that you could repeat the process on a copy of the original database one step at a time and see when your queries lost their contents? Because it sounds (vaguely) like one of the system tables didn't copy correctly. Is there a chance that you had local tables as well as backend tables and that a query joined FE and BE tables together? Because that would invalidate all the cross-segment queries before you relinked them.
 
Access, very unhelpfully, does this whenever you access a query and Access can't find the tables/queries it references. This can happen in a couple of situations such as when you rebuild a database by importing all objects and do it in the wrong order so the queries are imported before the tables. Another situation is if your queries reference linked tables or spreadsheets or temp tables that get deleted. If you use temporary objects that might get deleted, the safest thing to do is to keep the queries as SQL strings rather than saved querydefs.
 
Pat: I think you are correct. I started with a blank front end database (because the existing one refused to convert) and loaded all of the queries before setting up the links to tables on the back end. Many of the queries then referenced EXPR1 etc.
I deleted all of the queries and reloaded them, with the table links in place. That seemed to fix the problem.

Robert
 

Users who are viewing this thread

Back
Top Bottom