We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now


Developing and Deploying Client/Server App

dfhaines asked
Medium Priority
Last Modified: 2010-04-30
I have been contracted to redevelop 10 VB 3.0 applications and one Access 2.0 database for a bank.  The applications will be redeveloped in VB 6.0 and the Access database will be converted to Access 7.0.  The bank's configuration is:  3 branches where one may be considered headquarters;  at the headquarters, there is one NT Server where the database and applications reside;  there are two T1 lines connecting each of the other branches;  each workstation connecting to the server runs Windows 95;  there are approximately 6-10 users who may simultaneously access the database at one time.

Issue:  the VB 3.0 apps were coded by an amateur (not that I am an expert) who might have 40 text boxes on one form with names Text1, Text2,...Text40, who would place an END statement prior to code that he have liked executed, etc..  Occasionally, the bank experiences database corruption.  When I recode the apps in VB 6.0, I need to be aware of certain practices, such as, Record Locking, Closing Recordsets, etc..

Without referencing a book, might someone suggest a model that includes practices to avoid corrupting the database and to ensure data integrity.  I assume I should use the Jet Engine to connect to the database.

Sorry for the lengthy question.

Watch Question

Using Access 97, I don't see much data coruption as in Access 2.0

By the way, you should make backups or even implementing an automatic replication in another database (in Access 97 it is but not in Access 2.0)

I seem to remember reading something to the effect of (this is not a quote):

If you connect everyone directly to the database, you might experience corruption if one of the workstations is doing something and get improperly shutdown or locks up.

Something like that anyway. In-fact, I think it was is the VBPJ magazine about developing multi-user applications a year or so ago. If I remember right, this persons fix to improve performance and reliability was to create a server side object that talked directly to the database. All the clients talked to the server size object.

Do note that I develop with SQL Server and not Jet, so I don't know if this solution actually works. But there you have it.


Thank you for your comments.

I had considered developing a server component to handle all client requests on the DB.  Any thoughts?

We have done this in an application with SQL Server (4.2). Instead of writing directly to the DB, we was making requests on this DLL to write to the DB. This DLL had the responsability to write the same data to 4 databases and sending it also through a pipe to an AS/400 computer.

When a database was down for some reason, automatically, the user application switched to another database.
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview



Thank you for your insightful response.  I will award you the points.  Before I closed the question, however, I wanted to point out a few things.

First, I will eventually port-over to SQL Server.  In the meantime, however, I am upgrading to Access 7.0/VB 6.0.  I do realize that Access is not a true back-end database engine.  Second, since I am confined to Access over the next 2 or 3 months, I want to ensure that engineer the data i/o correctly.  Do you recommend that I make an initial connection to the MDB at the start of the application, and then use Filtered SQL to retrieve the data for presentation and then immediately close the recordset to free memory.  It is a transaction-driven application, so I do not see the need retain the recordset, and hence, lock that page(s).

Thank you for time and attention to this matter.

Once you respond, regardless of your comment, I will award you the points.

Thanks again,


Please reply to my comment when the chance permits.
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.