I have a rather complicated DB that is running incredibbly slow. Access is not in my job description so I'm asking for advice. Pardon the rather lengthy description.
DB Info:
I have a DB for screening patients for a clinical trial. Essentially there are two tables, one for patient demographics (name, DOB, etc.) and one for data regarding their eligibility (criteria1, criteria2, etc.). Lets call the tables TableA and TableB and they are linked by a unique patientID.
The main form has three parts:
1. A bunch of controls to filter the list of patients. The form's record source is a query that uses these controls as filter criteria. Also there are some buttons as the column headings for the listbox that when clicked append the appropriate 'Order By' statement to the form and listbox record source.
2. A large listbox with the row source the same as the query used for the form's record source. There is VBA code behind it to sync the selected list item to the current record and vice versa and requery both the form and listbox.
3. A subform for entering screening data and displaying patient details.
There are about 35k records in both TableA and TableB.
The main form is bound to a query joining both TableA and TableB since I need to filter records by patient demographics and screening info.
The subform is bound to a different query with a TableA, TableB join, but could probablly be based solely on TableB.
The forms are linked by PatientID.
Loading the form takes a long time, sorting the form takes a long time. Filtering the form takes a long time. Moving through records works great.
This program is going to be used by many users over the network simultaneously so I set up replication. In the replica, the form stalls terribly and seems like it is trying to sync data or update something, making loading/sorting/filter nearly impossible.
What am I doing wrong? How can I improve this without losing functionality?
DB Info:
I have a DB for screening patients for a clinical trial. Essentially there are two tables, one for patient demographics (name, DOB, etc.) and one for data regarding their eligibility (criteria1, criteria2, etc.). Lets call the tables TableA and TableB and they are linked by a unique patientID.
The main form has three parts:
1. A bunch of controls to filter the list of patients. The form's record source is a query that uses these controls as filter criteria. Also there are some buttons as the column headings for the listbox that when clicked append the appropriate 'Order By' statement to the form and listbox record source.
2. A large listbox with the row source the same as the query used for the form's record source. There is VBA code behind it to sync the selected list item to the current record and vice versa and requery both the form and listbox.
3. A subform for entering screening data and displaying patient details.
There are about 35k records in both TableA and TableB.
The main form is bound to a query joining both TableA and TableB since I need to filter records by patient demographics and screening info.
The subform is bound to a different query with a TableA, TableB join, but could probablly be based solely on TableB.
The forms are linked by PatientID.
Loading the form takes a long time, sorting the form takes a long time. Filtering the form takes a long time. Moving through records works great.
This program is going to be used by many users over the network simultaneously so I set up replication. In the replica, the form stalls terribly and seems like it is trying to sync data or update something, making loading/sorting/filter nearly impossible.
What am I doing wrong? How can I improve this without losing functionality?