473,503 Members | 1,720 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

UI question: using AutoComplete in a broader sense?

I'm currently doing a database that uses comboboxes to look up records
in other tables, whether they be lookup tables or otherwise. When a
user needs to add an item to one of these tables, the user has to
either double-click on the combobox or go to the appropriate form via
an item on the main menu.

So, using an example, if someone is entering enrollment information,
they would definitely need a student and a course. If the course has
not been entered as a row in the "tblCourses" table yet, they could
double-click on the course combobox, which brings up the Course
Information form (modal). Then they enter the information, close the
Course Information form, and the combobox is requeried.

I am using all bound forms.
I know that it's possible to add items to simple lookup tables using
code and the NotInList() event. I think there have been recent
threads similar to this vein. But what about more complex lookups,
like the Course info? Courses have start dates, end dates, costs,
trainers, etc.

There are many ways to achieve something akin to AutoComplete by
allowing the ability for users to natively enter data in the 'main'
enrollment form, check to see if a course matching the typed info
exists, and if so, just set the foreign key equal to whatever matched.
Or, if nothing similar exists, then create a new course, get the ID,
and store that in the 'main' form.

So back to example--you enter in "12-10-2000" for the start date. Tab
over, which causes the AfterUpdate() event, which sees only one
matching course for that date. Since there's only one course, it
fills out the rest of the information for you and stores the ID of
this course.

Another--you enter in "12-11-2000" for the start date. Tab over.
"Billg" is the trainer. Tab over. Etc. Tab. Etc. You update the
last field, and it notices that (1) all fields are filled in, and (2)
there is no matching course. So it creates a record in the table. It
then stores this record in the enrollment information.
Now for my question: has anyone actually implemented something like
this? If so, was it worth the hassle? Or is there a simpler way, or
am I doing it correctly right now (see paragraph 1)? I'm just looking
for a word of experience telling me that this is a (1)good idea, or
(b)bad idea, or (e)all of the above. This is an Access-specific
question because it involves questions about using bound forms, doing
multiple and possibly frequent lookups, and because I'm using Access
97 for all this.
Pete
Nov 12 '05 #1
3 1967
Pete:

Put a button beside the Course combobox and label it Add New Course. Put the
following code in the Click event of the button:

DoCmd.OpenForm "NameOf formToAddCourses",,,,,acDialog
If Not IsLoaded("NameOf formToAddCourses") Then
Exit Sub
End If
Me!NameOfCourseCombobox.Requery
Me!NameOfCourseCombobox = Forms!NameOf formToAddCourses!CourseID
DoCmd.Close acForm, ("NameOf formToAddCourses"

Notes:
1. Put an OK button on your form to add courses and put code in the Onclick
event to make the form not visible.
2. The IsLoaded function is in a standard module in Northwind.
--
PC Datasheet
Your Resource For Help With Access, Excel And Word Applications
re******@pcdatasheet.com
www.pcdatasheet.com
"Pete" <ps********@zombieworld.com> wrote in message
news:98**************************@posting.google.c om...
I'm currently doing a database that uses comboboxes to look up records
in other tables, whether they be lookup tables or otherwise. When a
user needs to add an item to one of these tables, the user has to
either double-click on the combobox or go to the appropriate form via
an item on the main menu.

So, using an example, if someone is entering enrollment information,
they would definitely need a student and a course. If the course has
not been entered as a row in the "tblCourses" table yet, they could
double-click on the course combobox, which brings up the Course
Information form (modal). Then they enter the information, close the
Course Information form, and the combobox is requeried.

I am using all bound forms.
I know that it's possible to add items to simple lookup tables using
code and the NotInList() event. I think there have been recent
threads similar to this vein. But what about more complex lookups,
like the Course info? Courses have start dates, end dates, costs,
trainers, etc.

There are many ways to achieve something akin to AutoComplete by
allowing the ability for users to natively enter data in the 'main'
enrollment form, check to see if a course matching the typed info
exists, and if so, just set the foreign key equal to whatever matched.
Or, if nothing similar exists, then create a new course, get the ID,
and store that in the 'main' form.

So back to example--you enter in "12-10-2000" for the start date. Tab
over, which causes the AfterUpdate() event, which sees only one
matching course for that date. Since there's only one course, it
fills out the rest of the information for you and stores the ID of
this course.

Another--you enter in "12-11-2000" for the start date. Tab over.
"Billg" is the trainer. Tab over. Etc. Tab. Etc. You update the
last field, and it notices that (1) all fields are filled in, and (2)
there is no matching course. So it creates a record in the table. It
then stores this record in the enrollment information.
Now for my question: has anyone actually implemented something like
this? If so, was it worth the hassle? Or is there a simpler way, or
am I doing it correctly right now (see paragraph 1)? I'm just looking
for a word of experience telling me that this is a (1)good idea, or
(b)bad idea, or (e)all of the above. This is an Access-specific
question because it involves questions about using bound forms, doing
multiple and possibly frequent lookups, and because I'm using Access
97 for all this.
Pete

Nov 12 '05 #2
"Pete" <ps********@zombieworld.com> wrote in message
news:98**************************@posting.google.c om...
I'm currently doing a database that uses comboboxes to look up records
in other tables, whether they be lookup tables or otherwise. When a
user needs to add an item to one of these tables, the user has to
either double-click on the combobox or go to the appropriate form via
an item on the main menu.

So, using an example, if someone is entering enrollment information,
they would definitely need a student and a course. If the course has
not been entered as a row in the "tblCourses" table yet, they could
double-click on the course combobox, which brings up the Course
Information form (modal). Then they enter the information, close the
Course Information form, and the combobox is requeried.

I am using all bound forms.
I know that it's possible to add items to simple lookup tables using
code and the NotInList() event. I think there have been recent
threads similar to this vein. But what about more complex lookups,
like the Course info? Courses have start dates, end dates, costs,
trainers, etc.

There are many ways to achieve something akin to AutoComplete by
allowing the ability for users to natively enter data in the 'main'
enrollment form, check to see if a course matching the typed info
exists, and if so, just set the foreign key equal to whatever matched.
Or, if nothing similar exists, then create a new course, get the ID,
and store that in the 'main' form.

So back to example--you enter in "12-10-2000" for the start date. Tab
over, which causes the AfterUpdate() event, which sees only one
matching course for that date. Since there's only one course, it
fills out the rest of the information for you and stores the ID of
this course.

Another--you enter in "12-11-2000" for the start date. Tab over.
"Billg" is the trainer. Tab over. Etc. Tab. Etc. You update the
last field, and it notices that (1) all fields are filled in, and (2)
there is no matching course. So it creates a record in the table. It
then stores this record in the enrollment information.
Now for my question: has anyone actually implemented something like
this? If so, was it worth the hassle? Or is there a simpler way, or
am I doing it correctly right now (see paragraph 1)? I'm just looking
for a word of experience telling me that this is a (1)good idea, or
(b)bad idea, or (e)all of the above. This is an Access-specific
question because it involves questions about using bound forms, doing
multiple and possibly frequent lookups, and because I'm using Access
97 for all this.
Pete


It really seems to be a fine balance between making it easy to add a new
course 'on-the-fly' but not making it so trivially easy that wrong or
duplicate data is added by careless users. A huge factor is the number of
courses there are, but if you had, say, a couple of hundred then a combobox
soon becomes a pain - especially if you need to find the course by a number
of different criteria.

In this case, I could imagine a form/subform with a single search textbox to
find the course. Allow the user to type in either the name of a trainer /
all or part of a course name, or even a course date and query your subform
accordingly. With a few refinements to the code, I have built these sort of
things to make entering key data extremely fast and user-friendly, and these
structures have usually been quite popular with the users. For an example
of the sort of thing open, say Outlook, and see how they do it when you
write a new e-mail and click 'To:'

However, you will notice it's not very sophisticated. Had I written this,
you would be able to enter any part of the first name, surname or both and
the list of matching contacts would be shown, sortable by either column.

In my opinion, your question seems to be about not 'wasting the user input'
once CourseName, CourseTutor, CourseDate have been entered in the search
fields. It may be that you have thousands of courses and you need to search
that way, but at a guess, the biggest improvement you could make to keep
your users happy is a simple and quick search routine that might (at least a
standard / default search) use a single textbox to find.

Fletcher
Nov 12 '05 #3
"Fletcher Arnold" <fl****@home.com> wrote in message
It really seems to be a fine balance between making it easy to add a new
course 'on-the-fly' but not making it so trivially easy that wrong or
duplicate data is added by careless users. A huge factor is the number of
courses there are, but if you had, say, a couple of hundred then a combobox
soon becomes a pain - especially if you need to find the course by a number
of different criteria.

In this case, I could imagine a form/subform with a single search textbox to
find the course. Allow the user to type in either the name of a trainer /
all or part of a course name, or even a course date and query your subform
accordingly. With a few refinements to the code, I have built these sort of
things to make entering key data extremely fast and user-friendly, and these
structures have usually been quite popular with the users. For an example
of the sort of thing open, say Outlook, and see how they do it when you
write a new e-mail and click 'To:'

However, you will notice it's not very sophisticated. Had I written this,
you would be able to enter any part of the first name, surname or both and
the list of matching contacts would be shown, sortable by either column.

In my opinion, your question seems to be about not 'wasting the user input'
once CourseName, CourseTutor, CourseDate have been entered in the search
fields. It may be that you have thousands of courses and you need to search
that way, but at a guess, the biggest improvement you could make to keep
your users happy is a simple and quick search routine that might (at least a
standard / default search) use a single textbox to find.

Fletcher

Thanks for your input. This is what I was looking for.
Pete
Nov 12 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
5240
by: bc | last post by:
Hi, Is it possible to detect if the IE autocomplete function in a current context such as a textbox is activated (ie. dropdown with previously entered info is visible)? Problem: I use a script...
2
8976
by: scorp7355 | last post by:
I was wondering if there is some other way to turn autocomplete off besides using "autocomplete=off", using a meta tag or something similar. It would be great if there is some way to turn it off...
0
1195
by: Scott | last post by:
I have a webform that I would like to use the autocomplete feature for all my textboxes. My textboxes are the <ASP:Textbox /> control. The only way I seem to be able to get autocomplete to work...
2
4494
by: Mrinal Kamboj | last post by:
Hi , Need to get some basic info regarding AutoComplete Attribute in COM+ . I am having a class with TransactionOption set to Required , now for this class , can i mark all the methods with...
10
2077
by: Robert | last post by:
I am an attorney in a non-profit organization and a self-taught programmer. I'm trying to create a client db that will allow me to search for potential conflicts of interest based either on Social...
27
3247
by: the other john | last post by:
Is there a way or a property that can tell me how many items are in an array? Like when using the Split function but the actual number of created array items is unknown? I need to be able to...
1
3824
by: wkerplunk | last post by:
Below is what I have build with several different languages. It works great but I need help, I am stuck. When you click on an item in the dropdown autocomplete div it does a mousedown function...
0
1105
by: =?ISO-8859-15?Q?Mathias_W=FChrmann?= | last post by:
Hi everbody, everytime I use autocomplete feature for textbox or combobox, my application crashes with a Win32-Error exactly at the point, where the autocomplete should kick in. I have no...
2
1341
by: HariKutty | last post by:
Hello Every one My Use Case: I want to display the list of matching email address from the word typed in by the User. Example If the User types "a" in textbox then it shoud display ...
0
7192
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7064
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
1
6974
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
7445
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
5559
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
4991
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
4665
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
1492
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
1
721
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.