My organization is in the process of upgrading from Access 2003 to Access 2007. One of the apps I am tasked with upgrading is returning very odd errors while opening and closing forms that have nested forms. Have the events changed between Access 2003 and Access 2007 ? The events seem to be firing in a different order in 2007 then they did in 2003.
I haven't encountered the situation you described. I can't find anything which mentions changes to forms event model. Allen Browne has some information about Access 2007 compatibility with older versions:
http://allenbrowne.com/Access2007.html#Compatibility
The only problems I experienced so far with 2003 MDBs in Access 2007 were due to broken references. If you haven't already done so, double-check yours (Tools-> References) from the VB editor. While there, try Debug -> Compile to verify whether your code will compile without errors in Access 2007.
Tony Toews' Corrupt Microsoft Access MDBs FAQ could help fix or rule out odd behavior due to corruption:
http://www.granite.ab.ca/access/corruptmdbs.htm
If you've done those things, and still have problems with certain forms, it might be useful to create a new blank database and import those forms (and objects they depend on) into the new database.
Sorry to scatter-shot this thing. It might help if you could provide more detail about the nature of the errors you're getting.
Related
I'm running reports in MS Access 2003 which query against our SQL Server 2008 database. Unfortunately when adding new vies to the report form MS Access has begun crashing as soon as I try to view them in anything other than design view.
The program is not throwing out any error messages and the individual views cannot be displayed outside of the report form.
I have converted all of the views to tables as a rather sloppy hack to get these reports up and running. Although this works I'd really like to try and gain a bit more insight into why Access is willing to display some SQL Server views and not others. Note this is not an issue with 2003 I believe because the same behavior is observed in MS Access 2010.
Has anyone run into anything similar?
Any Ideas what may be causing this?
I'd like to avoid having to use my convoluted table conversion method in the future.
I'm trying to rebuild an Access adp application in Access 2007. I started with a blank database, linked the SQL Server tables I need with ODBC, and then copied over all of the forms from the original application. I then updated the data sources for the forms to go to the correct tables.
When I open one of the forms, I get the error "Syntax error in WITH OWNERACCESS OPTION declaration". This error is occurring before the Open event code is being run.
Does anyone have any ideas about how to track down where this error is coming from? Or maybe an idea of another way to do this altogether?
Thanks!
WITH OWNERACCESS OPTION makes no sense in an ADP, as it's a command for Jet SQL for use with Jet user-level security. With an ADP, the security should all be set on the server. So, you should remove all the WITH OWNERACCESS OPTION statements from your form RecordSources.
Frankly, I'm not sure they have an effect in anything other than a saved QueryDef, so likely they were an error in the original application.
Also, I would never recommend copying anything from an MDB into an ADP. First off, I don't believe migrating to an ADP is ever advisable (though I certainly use ADPs as an administrative tool with my MDB/ODBC apps that use SQL Server), but secondly, there are so many differences between the two platforms that I just can't see them working.
If I chose to migrate an MDB to ADP (and I can't imagine that I ever would, given that MS has been deprecating ADPs for about half a decade now), I would start from scratch and rebuild it from the ground up.
I'm hoping someone can either tell me what I'm doing wrong correct my flawed understanding of how this works and explain why it's not possible.
I've been developing a fairly basic database/program for a client in Access. They have Office 2007, I have Office 2010. Initial test of creating a database in 2010 (in "2007" format) and opening the forms and data in Office 2007 showed no problems.
Fast forward 3 weeks. I've sent them a recent copy for approval and they can't open it. Unrecognised database format. Upon looking around, it seems Access 2007 format doesn't really mean anything in terms of backward compatibility (thanks M$). I COULD follow the seemingly standard answer and remove empty fields, calculated columns etc but really don't think it should be necessary.
I've installed the Access 2010 runtime on one of the target systems with the understanding that it would allow me to open the Access 2010-developed ACCBD. No luck. Office 2007 still launches, and "unrecognised database format".
Is the problem that Access 2007 is installed on the target system? Or am I perhaps misunderstanding what the Access runtime distribution is for? Basically, is there a way to still deploy a program/database developed in Access 2010 without a) installing (and purchasing about 60 licenses of) Office 2007, or b) stripping back the existing ACCDB.
I haven't worked enough with A2007 and A2010 to help with the problem of A2007 not being able to open the ACCDB in which you were working in with A2010. Your understanding of how the Access runtime is for is basically correct.
However when the client was executing the A2010 runtime against your ACCDB did they create a shortcut referencing the path to the A2010 runtime msaccess.exe and the path and file name of the ACCDB? Similar to
"C:\Program Files\Microsoft Office\OFFICE14\ART\MSACCESS.EXE" "Q:\1 access\NewsgroupAnswers.mdb"
You can save in 2007 format from 2010 but one little known issue is that when you make changes in a 2007 access file within 2010 you will not be able to open it in 2007 again. To fix this you must create a -new- 2007 file and import all items into the fresh one (just compact and repair will not work) and then this new file should be usable within 2007 once more.
What are the implications of running a Microsoft Access Database in both 2003 and 2007?
Is there some class I forgot to take?
The program was originally built in office 2003, and then run in 2007. Issues seem to happen when the machine it is being run on has both 2003 and 2007 on it. The issue would also appear to stem from reference from the "Microsoft Access 12.0 Object Library" (or the "Microsoft Access 11.0 Object Library" in 2003). To see this, just look at the Tools: Refrences menu on the VBA screen.
The error's symptom is basically the code not be recognized (almost like it doesn’t recognize the programming language I’m using). It usually follows this with a box that says "The expression On Load you entered as the event property settings produced the following error: Object or class does not support the set of events". You can also replace “On Load” with “On Click” for buttons or “On Change” for text boxes.
I personally suspect that the computer is taking parts of the Microsoft Access 11.0/12.0 Object Library and then mixes the two into a useless VBA reference. What further confirms my suspicion is the box that pops up when going between the two that says "Configuring Microsoft Access" Another issue that further confirms my suspicion is it will run on whichever one it is opened on first (2007, for example) and then not run on the other (2003 continuing the example)
The only other issue is I have had to fix was changing the last part of the DoCmd.OpenForm ,,,,, acFormReadOnly (or acReadOnly, depending on how the machine seems to feel on that particular day - yes it would work with one, one day and then want me to switch it another) to simply locking the individual text boxes
Maybe it’s not quite coding, but I think it might be able to be fixed by coding.
Hopefully that’s enough for someone to come up with something.
Microsoft's official position is that installing multiple office versions on the same pc is not supported and not recommended, and Access 2007 seems to be designed to prove that to us!
That said, you can avoid most issues by doing the following:
1 - Splitting the db into a back end and front end. Place the back end (tables and relationships) in a network folder, and place a copy of the front end (all other objects) on each user's desktop.
2 - It's best to make the front end an mde to avoid the references shuffle every time you open the db in the other version of Access.
3 - Create a shortcut to open the front end with the desired version of Access so it's always opened with that version. (And remember to use the shortcut!) In the shortcut's target:
"path to Access 12 msaccess.exe" "path to db.mdb"
We have an MS-Acces application, developped with Access 2003 and used on either full or runtime version of Access 2003 and Access 2007 (Access 2007 Runtime being free, we are making a great use of it!). There is no particular issue except the references management. Our code analyses the Office version installed on the computer and automatically updates corresponding references (not only Access but also Excel, Outlook, Word, etc.: code is very tricky but of great interest!)
To my own knowledge, no major objects, properties or methods available in Office 2003/VBA were deprecated in Office 2007. Office 2003 code will then run with Access 2007 once these references issues solved. Some new objects were introduced in Office 2007 so I would not advise any developer to use it to develop code to be further used with Access 2003.
But the main & real issue of your question is: why should one run both Access versions on the same computer? This is what I'd do if I want to make sure to crash my apps. I think that if your objectives were to develop software, you should definitely find a better configuration for your machine!
In general, having multiple versions of Access installed on the one machine is unsupported and will result in the issues you are seeing with the object references.
If the database is authored in Access 2003, compiled to an .MDE, and then deployed onto a separate Windows instance running Access 2007, you should not have any significant issues (other than UI changes such as custom toolbars being thrown into the Add-Ins ribbon).
For testing on multiple versions of Access you will need some form of isolation between each version. I use multiple virtual machines to accomplish this. My primary Windows VM runnings Office 2007 and IE7 and I have a second VM which has Office 2003 and IE6 for testing.
Note that if you wish to simply use Word, Excel and Outlook 2007 with Access 2003, you can install Access 2003 first by itself and then do a custom install of Office 2007 and deselect Access 2007.
I've written an Access 2003 application to handle internal things at my company over the past couple years and we are talking about upgrading all of our computers to Office 2007 which means Access will be updated. Is this going to cause a problem for me?
Allen Browne, Microsoft access MVP, has written a comprehensive article on Microsoft Access 2007 and upgrading:
Converting to Access 2007
Here is an article by Microsoft:
Transitioning Your Existing Access Applications to Access 2007
In case you are not aware, it is possible to try 2007 for free. I would not recommend trying on a PC that you use regularly for other Access work, it is not impossible, but things get awkward.
If you wish to run your 2003 version on 2007, make sure that you create an mde, otherwise you will run into problems. Access 2007 treats several controls in a different way, for example, textboxes with date fields get calendars attached. You will also need to check your references. I also recommend that you self-certify your projects. Other than that, I have seen posts on a number of problems, but these are usually specific to the poster.
We just recently went through this.
One issue we found was converting reports to Excel. They took that functionality out of Access, so if you do that you'll need to convert it programmatically using the Excel COM object model. I ended up writing a function to replace the old functionality but you still have a bit of juggling to do.