Microsoft KB Archive/209821

= ACC2000: Sorting a Query or Stored Procedure by Using Only a Portion of a Field's Value =

Article ID: 209821

Article Last Modified on 6/28/2004

-

APPLIES TO


 * Microsoft Access 2000 Standard Edition

-



This article was previously published under Q209821



Novice: Requires knowledge of the user interface on single-user computers.

This article applies to a Microsoft Access database (.mdb) and to a Microsoft Access project (.adp).



SUMMARY
You can sort or group a query or stored procedure by using only a portion of a field's value. This technique is useful if a field contains values with a set number of leading or trailing characters that are insignificant to your sorting task. An example of this might be a part number field that contained the following values:

A-453-34567

A-123-45675

B-234-75658

B-645-65759



In a Microsoft Access Database (.mdb)
To demonstrate how to sort or group a query by using only a portion of a field's value, this article uses the sample database Northwind.mdb to create a query based on the Employees table. The query uses the Mid function to sort by six characters beginning with the fourth character in the LastName field. You could also use the Left and Right functions to return characters from the left or from the right side of a string argument.

NOTE: You can see a demonstration of the technique that is used in this article in the sample file Qrysmp00.exe. For information about how to obtain this sample file, please see the following article in the Microsoft Knowledge Base:

207626 ACC2000: Access 2000 Sample Queries Available in Download Center

The following procedure explains how to use the Mid function to sort data by using only a portion of a field's value:  Open the sample database Northwind.mdb. Create a new query based on the Employees table. Enter the following line in the Field row in the first column of the query grid:

Sort String: Mid([LastName],4,6)

 Select the Sort cell in the Sort String column and select Ascending or Descending. Drag the LastName field from the Employees box to the QBE grid. Switch the query to Datasheet view. Note that Sort String appears as the name of the first column, but you can change this header to any other name. Note also that the employee records are sorted by the fourth letters of the employees' last names.</li></ol>

If you wanted to use this technique on the part number example

A-453-34567

A-123-45675

B-234-75658

B-645-65759

you could sort these part numbers by the third through fifth characters only by using the following expression:

Expr1: Mid([PartNo]),3,3)

In a Microsoft Access Project (.adp)
To demonstrate how to sort or group a stored procedure by using only a portion of a field's value, this article uses the sample project NorthwindCS.adp to create a stored procedure based on the Employees table. The stored procedure uses the SubString function to sort by six characters beginning with the fourth character in the LastName field. You could also use the Left and Right functions to return characters from the left or from the right side of a string argument.

<ol> Open the sample project NorthwindCS.adp.</li>  Create the following stored procedure: CREATE PROCEDURE "SortString_Proc"

AS

SELECT SUBSTRING(LastName,4,6) AS [Sort String], LastName FROM Employees ORDER BY (SUBSTRING(LastName,4,6)) </li> Save the stored procedure and switch to Datasheet view. Note that Sort String appears as the name of the first column, but you can change this header to any other name. Note also that the employee records are sorted by the fourth letters of the employees' last names.</li></ol>

<div class="references_section">