CREATING QUERY WITH
QUERY WIZARD AND
Query is the most powerful feature of any database. A Query is a set
of instructions in a logical order, required to produce the output
based on Table(s) in a particular fashion. In FoxPro, as everything is
a menu driven, queries can be designed just by clicking some options.
Visual FoxPro also provides this feature to the users. It provides
several query type depending upon whether you intend to just view
data or update it as well. Query can be created based on complex
conditions. In visual FoxPro, you can also define queries on local as
well as remote data.
After going through this lesson you would be able to
create query with Query Wizard
create query using two Tables
create query with Query Designer
view query outputs
94 :: Computer Applications
7.3 CREATING A QUERY WITH QUERY WIZARD
There are two ways of creating a Query using:
(i) Query Wizard
(ii) Query Designer
To create a query with Query Wizard, choose New option from File
menu or click the New tool. The New dialog box appears as shown
in figure 7.1. Choose Query radio button and then click Wizard
Fig. 7.1: New Dialog box
Visual FoxPro displays the Wizard Selection dialog box as shown in
figure 7.2. The Wizard Selection dialog box provides options for
creating several special purpose queries as well as ordinary visual
Creating Query with Query Wizard and Query Designer :: 95
Fig. 7.2: Wizard Selection Dialog Box
The Cross-Tab wizard displays the data in Spreadsheet format. The
Graph wizard displays a graph based on data from the FoxPro Tables.
Select the Query Wizard in the Wizard Selection dialog box to
display the “Step-1 of the Query Wizard dialog box as shown in the
Fig. 7.3: Query Wizard Dialog Box
96 :: Computer Applications
7.3.1 Selecting the Table
The first step in creating a Query is to select the database table and
fields on which your Query is based. In fact, the first dialog box of
Query Wizard allows you to select one or more tables and select the
fields of that table to include in the Query result.
The Database and tables option available with the first step of Query
Wizard dialog box displays the current database, if the database is
open, otherwise, it displays the words Free Tables as shown in the
figure 7.3. If a database is open, the names of the tables it contains
appears in the scrollable list. If the database is not open, or if you
want to use a Free Table, click the ellipsis button (…), which opens a
dialog box that allows you to select the required table. The table
name occurs alone in the table list, if you select a Free Table.
7.3.2 Selecting the Fields
After you select the Table from the table list you will notice that all
the fields of the selected table are displayed in the Available Fields
list. The Query Wizard dialog box includes a Field Picker buttons,
which are found between the Available fields list and Selected Fields
list. The arrow directions indicate the way they move fields. A
single arrow moves a single field. Double arrow buttons
move all the fields. To move a field from the available list, first select
the field you want to move by clicking it or by using the arrow keys
and then click the top buttons with right arrow. This moves the
highlighted field to the selected fields list. Repeat this process to
move more fields from Available Fields list to Selected Fields list as
shown in figure 7.4.
Fig. 7.4: Query Wizard with Select Fields
Creating Query with Query Wizard and Query Designer :: 97
If you want to move all the fields from Available Fields list to Selected
Fields list, click the double right arrow button. If you have selected
the wrong fields or if you want to remove any field from the Selected
Fields lists, then you can select the field from the Selected fields list
and click the left arrow button. Similarly, you can choose the double
left arrow key to move all the fields from the Selected Fields list to
Available Fields list.
Remember that the order in which you select the fields for Query,
the Query output will be shown in that order only. Choose Next
push button to proceed to the next step of the Query Wizard.
7.3.3 Joining (Relating) the tables
If you want to extract data from more then one table, you can go
back to the Database/Table column to select a different table, and
then click additional fields to include in the query. Remember that
in such a query, you must define a relation for each additional table
used in the query.
The figure 7.4 shows the fields selected from the table “STUDENT”.
If you specify fields from more than one table, then the Query Wizard
move to step-2 of the Query Wizard. Here we have selected fields
from one table, so step 2 is not required. The Wizard automatically
skip the steps which are not required. In step 2 Relationship of
Query Wizard dialog box allows you to define a relation between
each table from which you selected fields. This step will be discussed
in the next topic when we will discuss about creating query with two
tables. Choose Next push button to move to the step 3 of the query
7.3.4 Filtering the data
The Step 3 filtering of query wizard allows you to define filters. Filters
mean defining conditional query. It limits the records included in
the query by creating selection criteria or records in the source
tables. The fields used for this selection may or may not be included
in the query fields depending upon the fields you have selected for
your query during the step-1 of the query wizard. For example, you
might want the list of students from Jaipur;
STUNDENT.ADD3 = “JAIPUR”
To define the above expression in the “Step 3 Filtering” of query
wizard as shown in figure 7.5.
98 :: Computer Applications
Fig. 7.5: Step-3 of Query Wizard with Filtering
Select STUDENT.ADD3 from the drop down list, select equals from
the Operator list (default) and type JAIPUR in the Value text box.
The following operators are available with the filtering:
- Not equals
- More than
- Is Blank
The quotes around the strings are optional. However, case is
important, if the selected operator is not Contains. Contains performs
a case-insensitive test. Is Blank requires no strings in the value text
box. To use the operator In, separate the values in the list with
commas, but do add extra blank. For the operator Between type the
first and last value separated with a comma, and not space.
Creating Query with Query Wizard and Query Designer :: 99
You can also define second filter criteria to use complete logical
expression. Remember, you need to join the second filter to the
prior one with either an AND or OR connector. The Wizard, however,
limits you to just two filter conditions. To add more than two filter
conditions you need to save the query and immediately modify it in
the query Designer.
7.3.5 Specifying Sort Order
The Step 4 Sort Order of query wizard allows you to create a sort
order for the query result output. You can select any field from the
available fields list. You can select more then one field for specifying
the sorting order. Remember that the order in which you select
these fields determines their sort priorities. You can also change
the sort priorities by moving the selected field using the double-
headed buttons to the left of the field names. Just click a double-
headed button and drag it up or down to a new position. You can
also send the data in ascending or descending order as per your
selection of the Ascending or Descending radio buttons in the Step-
4 of the Query Wizard dialog box.
Figure 7.6 shows the field selected i.e. Enrol and Name for the sort
order. Choose Next push button to move further to the step-4 of
the query wizard.
Fig. 7.6: Step 4 of Query Wizard with Sort Order
100 :: Computer Applications
7.3.6 Previewing the Query Result
You can also click the Preview… push button form the step 3, to
run the Filtering of query wizard while still in the Wizard and view
the results. The Browse window displays the records that match the
expression as shown the figure 7.7
Fig. 7.7: Previewing the Query Result
You can scroll through the window to make sure the conditional
expression is finding the records that you actually want. If you do
not get the expected result records, you can use the back button to
return to any prior step and change the query definition. You can
move between the Preview and any wizard step as many times as
you like. Choose Next push button to proceed further in the query
wizard after closing the Browse window of the Query Results.
7.3.7 Saving a query
The last step of Query Wizard Step 5 Finish dialog box appears
when you click Next push button from the Sort Field step-4 of
Query Wizard as shown in figure 7.8. This last query wizard dialog
box allows you to save the query with any one of the following three
- Save query
- Save query and run it
- Save query and modify it in the Query Designer.
Creating Query with Query Wizard and Query Designer :: 101
Fig. 7.8: Saving a Query
When you click Finish push button, Visual FoxPro Displays the
Save As dialog box to type a name for the query. If you type the
name as QRY-1 of your query then Visual FoxPro saves the query
with this name and with extension name QPR, which stands for
Query Program. Once you save the query, you can only modify it
further by using Query Designer.
1. Write True or False for the following statements
(a) Query can only be viewing data and not updating data.
(b) The first step in creating a Query is to select the database
table and fields.
(c) Query can be created using two or more tables.
(d) You can not preview the query result.
2. Fill in the blanks:
102 :: Computer Applications
(a) In selecting fields, the fields are moved from————— field
list to ———————— field list.
(b) You must define a ——————— for each additional table
used in the query.
(c) Filters mean defining ———————————— query.
3. Write steps for finding Students from Jaipur and Delhi in Table
7.4 CREATING A QUERY WITH TWO TABLES USING QUERY
In the previous section you have learnt the queries using one table.
Most databases contain several related tables.
To learn how to create a query with two tables, let us create one
more table named “RESULT’, with following structure and having
one common field ENROL. To relate between two tables, both the
data tables should have at least one common field.
Structure of table: RESULT.DBF
Field Field Name Type Width
1. ENROL C 9
2. SUBJECT C 15
3. MARKS N 3
Now, add the following records to the table RESULT.DBF
Record ENROL SUBJECT MARKS
1. 270813001 HINDI 70
2. 270813002 ENGLISH 65
3. 270813003 MATHS 72
4. 270813004 HINDI 64
5 270813005 ENGLISH 62
6. 270813006 HINDI 34
Now, do the following steps to create a query with two tables
STUDENT.DBF and RESULT.DBF using query wizard.
1. Choose New… option from the File menu, select the Query
radio button and click the Wizards push button. The Wizard
Creating Query with Query Wizard and Query Designer :: 103
Selection dialog box appears, click the Query Wizard button.
This is similar to what we discussed in the previous section.
2. The Step-1 Field Selection of Query Wizard dialog box appear,
when you click Query Wizard from the Wizard Selection dialog
box. Click the right button of the Database/Tables control, to
display the Open dialog box to add the “STUDENT” table to the
list and then click this button again to add one more table
“RESULT” which we have created.
3. Select the table “STUDENT” to display its fields in the Available
Fields list. Now select the following fields from the Available
Fields and move them to the Selected Fields list by double
clicking them or by using the right arrow button.
Then select the table “RESULT” from the Database/Tables list
to display the fields of “RESULT” table in the Available Fields
list. Select the fields SUBJECT and MARKS to add them in the
selected fields list as shown in the figure 7.9
Fig. 7.9: Query Wizard with Two Tables
104 :: Computer Applications
4. Click Next push button, Visual FoxPro displays the Step-2
Relationship dialog box of the Query Wizard. In this box you
have to specify how the tables are related, as shown in figure
Fig. 7.10: Relate Table of the Query Wizard
It is suggested that the field STUDENT ENROL and RESULT
ENROL has a common field ENROL in both the tables. Click
the Add… push button to display the relationship as shown in
the figure 7.10.
5. Click the Next push button and the Step-2a Include Records
of the Query Wizard dialog box appears. This dialog box allows
you to include the records from the following options as shown
in the figure 7.11.
a. Only matching rows
b. All rows from the Table STUDENT
c. All rows from the Table RESULT
d. All rows from both tables
Creating Query with Query Wizard and Query Designer :: 105
Fig. 7.11: Query Wizard Include Records
The default option is to include all records with matching records.
6. Click the Next push button and the Step-3 Filtering of the
Query Wizard dialog box appears. If you want to filter the records
of your query you can repeat the steps of Filtering as discussed
in the previous section otherwise, you can skip this step by
clicking Next push button again.
Click the Next push button and Visual FoxPro displays the
Step-4 Sort Order dialog box of the Query Wizard. Double click
the STUDENT ENROL field to add it in the Selected Fields list
as shown in the figure 7.12.
106 :: Computer Applications
Fig. 7.12: Query Wizard with Sort Records
7. Click the Preview push button, to view the result of the Query,
which includes the data form the two tables.
Now click OK push button to close the Preview window. Lastly
click the Finish push button from the step Finish and have the
Query as QRY-2 in the Save As dialog box. Click Save push
button from the Save As dialog box to save the Query.
7.5 CREATING QUERY WITH QUERY DESIGNER
To create a query from scratch with Query Designer, choose New
option from File menu. The New dialog box appears as shown in
the figure 7.13. Choose the Query radio button from the New dialog
box and click the New File push button.
Creating Query with Query Wizard and Query Designer :: 107
Fig. 7.13: New dialog box to create a Query
You can also use the query designer to modify a query, which you
have created using Query Wizard. Choose Open option from the
File menu and select the query file from the Open dialog box.
7.5.1 Adding a Table or View
A query is always created on a table. If no table is in use, Visual
FoxPro displays the Add Table or View dialog box, which lists all the
tables of the open database.
Fig. 7.14: Add Table or View
108 :: Computer Applications
Figure 7.14 shows the Add Table View dialog box, where you can
select a free table by choosing Other… push button, which display
the Open dialog box. It allows you to select a table from any directory
or drive, including network drive.
Figure 7.15 shows the table STUDENT.DBF that you have selected,
is included in the panel at top of the Query Designer. The name of
the table always appears in the window header.
Fig. 7.15: Query Designer with One table
Remember that you can also add table at any time, by choosing Add
Table… option from the Query menu or by clicking the Add Table
tool from the Query toolbar to display the Add Table or View dialog
box, which allows you to select a table. Similarly, you can also
remove table at any time, by choosing Remove Table option from
the Query menu or by clicking the Remove Table tool from the
Query toolbar as shown in the figure 7.16.
Creating Query with Query Wizard and Query Designer :: 109
Fig. 7.16: Query Toolbar
7.5.2 Field Panel
After selecting the table STUDENT.DBF in the Query designer, you
need to specify which fields you want to include in the query result.
The Field panel of the Query Designer allows you to specify the
fields you want to include in your query result. To specify fields in
the Field panel, choose Fields tab from the Query Designer. The
Fields Panel dialog box appears as shown in the figure 7.15.
To move the fields you want to include from the Available Fields list
to the Selected Fields list, do one of the following:
Select one or more fields in the Available Fields list that you
want to use and choose Add > push button to copy them to the
Selected Fields list.
Double click on a field in the Available Fields list to copy it to
the Selected Fields list.
If you have to select all the fields, you can click Add All button.
Similarly, if you have to remove any field, you can do by clicking
Remove key or Remove All key.
For example, let us choose the following fields from the Available
Fields list by double clicking them.
The selected fields are displayed in the Selected Fields list as shown
in the figure 7.17 You can also include functions or expressions in
the result, if you are creating a grouped query, by selecting them
from the Functions/Expressions drop-down list and clicking Add
110 :: Computer Applications
Fig. 7.17: Query Designer Fields selection
7.5.3 Join Panel
This option is required when you are creating a Query with two or
more tables. This option will be explained when we will discuss
“Creating Query with Query Designer using two Tables”.
7.5.4 Filter Panel
The Filter option in the Query Designer determines which records
are extracted from the Table. If this option is empty, the query will
extract all the records from the open table named “STUDENT.DBF”.
To specify the Filter option to determine which records will be
matched, select the Field Name drop down list to choose a field and
Criteria list to choose the operator, and then enter the value you
want to match the record in the data table as shown in the figure
5.18. Choose STUDENT.ADD3 field name from the Field Name drop-
down list and enter the text JAIPUR in the Example text box, to find
all the records having Address3 as JAIPUR.
Creating Query with Query Wizard and Query Designer :: 111
Fig. 7.18: Query Designer with Filter Option
Choose Run Query option from the Query menu, to run the query.
The Browse window appears with all the records having Address3
equal to JAIPUR, as shown in the figure 7.19.
Fig. 7.19: Query Result of Filtering
7.5.5 Order By Panel
To specify the order in which records will appear in the query results,
choose Order By panel from the Query Designer. The Order By
panel occurs with all the fields in the Selected Fields list.
112 :: Computer Applications
To specify fields that will determine the order of the query results,
select a field from the Selected Fields list of Order By panel to
determine the order of the query result as shown in the figure 4.20.
Fig. 7.20: Query Designer with Order By Panel
You can also select more than one field to determine the order of
the query results. Choose the Add push button to copy it to the
Ordering Criteria list. Once you add Selected fields to the Ordering
Criteria list, you can determine the order by choosing Ascending or
Descending radio button. You can also adopt a shortcut method by
double-clicking on a field from Selected Fields list to move directly
to the Ordering Criteria list.
To remove fields from the Ordering Criteria, select one or more fields
from the Ordering Criteria list of Order By panel and choose the
Remove push button, the selected fields no longer appear in the
Ordering Criteria list or double-click on a field in the Ordering
Criteria list to remove it directly from the Ordering Criteria list. The
order in which fields appear in the Ordering Criteria list determines
the order of priority of the query results.
Creating Query with Query Wizard and Query Designer :: 113
For example, double-click on the fields Student.Enrol, then
Student.Name. This moves both the fields to the Ordering Criteria
list and will affect the output to be sorted by Enrolment, plus Name
as shown in the figure 7.20.
Choose Run Query option from the Query menu, to do the query.
The Browse window appears in the ascending order, as shown in
the figure 7.21.
Fig. 7.21: Browse window with Order By
To save a query, choose Save As option from the File menu or click
the Save tool. This opens the Save As dialog box to specify the
name of the Query. Enter the name QRY3 in the text box and
choose the Save push button as shown in the figure 7.22.
Fig. 7.22: The Save As dialog box
114 :: Computer Applications
7.6 CREATING QUERY WITH QUERY DESIGNER USING TWO
To create a query with Query Designer using two tables, let us
consider the two tables, which we have already created
STUDENT.DBF and RESULT.DBF. Choose New… option from the
File menu. Visual FoxPro displays the New dialog box. Choose
Query radio button and then choose New File push button. Visual
FoxPro displays the Add Table or View dialog box to select the table
for query. From the Open dialog box select the table named
“STUDENT.DBF”. The Query Designer appears with the included
table as shown in the figure 7.23
Fig. 7.23: Query Designer with Added Table at the top
Choose Add Table… option from the Query Menu. The Add Table
View dialog box appears to select the second table. Choose Other…
option to display the Open dialog box, and select the table named
“RESULT.DBF” You can either double-click the file name after
highlighting it or choose OK.
Visual FoxPro displays the Join Condition dialog box. By default,
Creating Query with Query Wizard and Query Designer :: 115
the first field STUDENT.ENROL will be displayed on the left and the
second table RESULT.ENROL will be displayed on the right with a
joining line as shown in the figure 7.24. The Join Condition dialog
box is displayed with the following option for Type of Join with its
description given in the Description box:
Inner Join Create a result set that includes only the Student
records that match Result records.
Left Join Create a result set that includes Student records
and matching Result records.
Right Join Create a result set that includes Result records
and matching Student records.
Full Join Create a result set that includes all Student
records and all Result records.
Fig. 7.24: Join Condition Dialog Box
Select the Type of Join as per the requirement of the query and
choose OK push button and close the Add Table or View dialog
box. Please note that the expression you have created with Join
Condition is displayed in the Join Panel of the Query Designer, and
the two tables are connected with the to indicate the join, as shown
in figure 7.25.
116 :: Computer Applications
Fig. 7.25: Displaying the Join in the Query Designer
Choose Fields panel of the Query Designer to select the fields for
the query results. Select the following fields from the Available
Fields list and move them to the Selected Fields list as shown in the
Fig. 7.26: Query Designer with two tables
Creating Query with Query Wizard and Query Designer :: 117
Choose Run Query option from the Query menu to execute the
query. The query result appears in the Browse window, as shown in
the figure 7.27.
Fig. 7.27 Query Results using two tables
To save the query you have created using two tables, open the File
menu and choose Save option. The Save As dialog box appears and
give the query name as QUERY-4 and click the Save push button.
Similarly, you can create a query using more than two tables.
7.7 INTEXT QUESTIONS
4. Write True or False for the following statements
(a) To relate between two tables both the data table would
have at least one common field.
(b) Include Records of the query wizard allows you to include
only matching rows.
(c) You can add or remove table through Query Toolbar.
(d) You can not select more than one field to determine the
order of the query result.
5. Fill in the blanks:
(a) In order to create a query with query designer, choose
——— radio button and click —————— push button.
(b) The name of the table always appears in the ——————.
(c) The extension name given to the query file is ——————
6. What are the four different types of Joins?
7.8 QUERY DESTINATION
So far you have seen the query results in a Browse or Edit windows
118 :: Computer Applications
on-screen. However, you may want to keep some query results for a
longer time, perhaps saving them for future use or using them in a
report. For this Visual FoxPro provides you with a feature Query
Destination. To change the query destination from on-screen Browse
window to a file or printer, choose the Query Destination option
from the Query menu or by choosing Query Destination from the
Query Designer toolbar. The Query Destination Dialog box appears
as shown in the figure 7.28.
Fig. 7.28: Query Destination dialog box
Visual FoxPro displays the following options from the Query
Destination dialog box:
7.9 WHAT YOU HAVE LEARNT
In this lesson you have learned about creating a query with query
wizard and query designer. You have also learned how to create a
query using two or more tables and how to join two tables. The
principles of creating relationship between two tables are discussed
in this lesson. You have also learned about viewing the query results
and saving the query results using query destination.
Creating Query with Query Wizard and Query Designer :: 119
7.10 TERMINAL QUESTIONS
1. What is the different steps involved in creating a query using
2. Explain the principles of relationship between the two tables.
3. What do you understand by query destination?
7.11 KEY TO INTEXT QUESTIONS
1. (a) F, (b) T, (c) T, (d) F
2. (a) available, selected, (b) relation, (c) conditional
3. as done in section 4.3.4, student.add3=’JAIPUR’ and
4. (a) Query, New File
(b) window header
5. (a) Query, New File
6. Inner, Left, Right and Full