Upgrade Microsoft Access with a VB6 Front-End
It seemed a good idea at the time, in the early days of Microsoft Access, to use Visual Basic 6 as a Front-End to a Microsoft Access database (the Back-End).
But the advantages of using VB6 as a Front-End have all evaporated, and companies are left with the difficulty of maintaining obsolete software.
The problems are:
- Visual Basic 6 was released in 1998 and is no longer supported. VB6 was replaced in 2002 by Visual Basic.Net (VB.Net). The VB6 software can no longer be purchased.
- The grid software companies (TrueGrid and Sheridan) and have been taken over by SAP SE. The software is not supported.
- The software company Crystal Reports no longer exists and was bought out by Business Objects, then SAP SE. Support is minimal, the Crystal Reports software can be purchased, but does not recognise the ACCDB type database. This can be handled with the use of ODBC. But ODBC no longer allows embedded User/Password to be used, which prevents all but the latest Crystal Reports versions from working.
- The Front-End usually has other third-party software, which will be difficult to obtain or maintain.
The alternatives are:
Enhance the current VB6 system
This is a very, very short term solution.
The system will presumably consist of VB6 code, data grid software and reporting software. Even if the system has been expertly written in well documented modules, it will be a nightmare to support and to enhance.
Supporting legacy software is a "lose-lose" situation:
- You will have difficulty finding a programmer to maintain the system
- New Windows operating systems or updates will eventually cause grief with VB6 and the other software
- There will be little or no support from previous third-party software suppliers
- The obsolete Data and DBGrid controls will need to be upgraded to the Adodc and DataGrid controls, in order to handle the ACCDB database
- ODBC security updates may cause grief
Convert the Front-End to Microsoft Access
Microsoft Access will allow reasonably fast development times. But Microsoft Access Forms are very much inferior to a VB solution – see The Front-End: Written in Visual Basic or in Microsoft Access?. This is not a recommended option.
Note that Microsoft Access will need to be purchased for each user.
Convert the Front-End to VB.Net
VB.Net is now completely stable. Development time is comparable to Microsoft Access – and you will have the best and most efficient software. The new VB.Net system can be phased in and run in parallel with the old VB6 Front-End. This allows the conversion to be completely under control – evolutionary development, rather than a "big bang" development.
There are some vendors that have software to automate the conversion of VB6 code to VB.Net. Beware of hybrid solutions which do not provide the best development environment. Note that Microsoft dropped their attempt at automated conversion due to the high error rate and maintainability issues.
Purchase off-the-shelf software
It is highly unlikely that any one software vendor will be able to replace all the functionality of a custom built system. Products like MYOB could handle the accounting requirements. Additional third-party software will most likely be needed to handle other aspects of the legacy custom software.
Everything depends upon the fit, and how easy it is to customise the third-party software to a Company's requirements.
- Business processes will need to be changed to fit in with the third-party software.
- Staff will need extensive training, or more likely, trained staff will need to be hired.
- Constant (and costly) upgrades will be needed.
- It is likely that most of the software features will never be used.
- I have yet to find accounting software that users are happy with.
- It could prove to be a very costly exercise.
Records will need to be extracted from the current Back-End database, and converted to import into the new Software.
It is often best to choose evolutionary development – which will allow a gradual transition to a satisfactory working system.
Many companies have their quirks that is best handled using Visual Basic's business oriented software. Much of the original business logic can be re-used.
It may be easiest to stick with the original decision to develop a new custom built system using Visual Basic.Net.