Access SQL を使用してレコードを取得するRetrieve records using Access SQL

最も基本的で、最もよく使用される SQL ステートメントは**select** ステートメントです。The most basic and most often used SQL statement is the SELECT statement. SELECT ステートメントはすべての SQL ステートメントの中で最も機能が多く、一般に選択クエリと呼ばれます。SELECT statements are the workhorses of all SQL statements, and they are commonly referred to as select queries. SELECT ステートメントを使用してデータベース テーブルからデータを取得し、その結果は、通常、任意の数のフィールド (列) で構成されるレコード (行) のセットとして返されます。You use the SELECT statement to retrieve data from the database tables, and the results are usually returned in a set of records (or rows) made up of any number of fields (or columns). FROM 句を使用して、選択対象が存在する 1 つ以上のテーブルを指定する必要があります。You must use the FROM clause to designate which table or tables to select from. SELECT ステートメントの基本構造は次のとおりです。The basic structure of a SELECT statement is:

SELECT field list  
    FROM table list

テーブルからすべてのフィールドを選択するには、アスタリスク (*) を使用します。To select all fields from a table, use an asterisk (*). たとえば、次のステートメントは Customers テーブルからすべてのフィールドとすべてのレコードを選択します。For example, the following statement selects all the fields and all the records from the Customers table.

SELECT * 
    FROM tblCustomers 

クエリによって返されるフィールドを絞り込むには、アスタリスクの代わりにフィールド名を指定します。To limit the fields retrieved by the query, simply use the field names instead. たとえば、次のように指定します。For example.

SELECT [Last Name], Phone 
    FROM tblCustomers 

結果セット内のフィールドに別の名前を指定するには、 as キーワードを使用して、そのフィールドのエイリアスを設定します。To designate a different name for a field in the result set, use the AS keyword to establish an alias for that field.

SELECT CustomerID AS [Customer Number] 
    FROM tblCustomers 

結果セットを制限するRestrict the result set

多くの場合、テーブルからすべてのレコードを取得する必要はありません。More often than not, you will not want to retrieve all records from a table. いくつかの修飾基準に基づいて、これらのレコードのサブセットのみを使用したいと考えています。You will want only a subset of those records based on some qualifying criteria. Selectステートメントを修飾するには、 WHERE 句を使用する必要があります。これにより、取得するレコードを正確に指定できます。To qualify a SELECT statement, you must use a WHERE clause, which will allow you to specify exactly which records you want to retrieve.

SELECT * 
    FROM tblInvoices 
    WHERE CustomerID = 1 

この CustomerID = 1 句の **** の部分に注目してください。Be aware of the CustomerID = 1 portion of the WHERE clause. WHERE 句にはこのような式を 40 個まで含めることができ、AND または OR 論理演算子を使って式を結合できます。A WHERE clause can contain up to 40 such expressions, and they can be joined with the And or Or logical operators. 複数の式を使うことで、結果セットに返されるレコードをより詳細に絞り込むことができます。Using more than one expression allows you to further filter out records in the result set.

SELECT * 
    FROM tblInvoices 
    WHERE CustomerID = 1 AND InvoiceDate > #01/01/98# 

日付文字列が数値記号 (#) で囲まれていることに注意してください。Be aware that the date string is enclosed in number signs (#). 式の中で標準文字列を使用する場合、その文字列を一重引用符 (') で囲む必要があります。If you are using a regular string in an expression, you must enclose the string in single quotation marks ('). 次に例を示します。For example.

SELECT * 
    FROM tblCustomers 
    WHERE [Last Name] = 'White' 

文字列値全体がわからない場合は、 Like 演算子と組み合わせてワイルドカード文字を使用できます。If you do not know the whole string value, you can use wildcard characters with the Like operator.

SELECT * 
    FROM tblCustomers 
    WHERE [Last Name] LIKE 'W*' 

使用できるワイルドカード文字にはいくつかの種類があります。次の表は、ワイルドカード文字の一覧とそれぞれの機能についての説明です。There are a number of wildcard characters to choose from, and the following table lists what they are and what they can be used for.

ワイルドカード文字Wildcard character 説明Description
* 0 文字以上の文字Zero or more characters
? 任意の 1 文字Any single character
# 任意の半角の数字 (0 ~ 9)Any single digit (0-9)
[ charlist ][ charlist ] 引数 charlist に含まれる任意の全角または半角の 1 文字Any single character in charlist
[! charlist ]charlist ] 引数 charlist に含まれない任意の全角または半角の 1 文字Any single character not in charlist

結果セットを並べ替えるSort the result set

結果セットの1つまたは複数のフィールドに対して特定の並べ替え順序を指定するには、オプションの**ORDER by** 句を使用します。To specify a particular sort order on one or more fields in the result set, use the optional ORDER BY clause. レコードは、昇順 (ASC) または降順 (DESC) のいずれかの順序で並べ替えることができます。既定値は昇順です。Records can be sorted in either ascending (ASC) or descending (DESC) order; ascending is the default.

ORDER by句で参照されるフィールドは、 selectステートメントのフィールドリストに含める必要がなく、文字列、数値、および日付/時刻の値に並べ替えを適用することもできます。Fields referenced in the ORDER BY clause do not have to be part of the SELECT statement's field list, and sorting can be applied to string, numeric, and date/time values. ORDER by句は常にSELECTステートメントの末尾に配置します。Always place the ORDER BY clause at the end of the SELECT statement.

SELECT * 
    FROM tblCustomers 
    ORDER BY [Last Name], [First Name] DESC 

ORDER BY 句では、フィールド名の代わりに番号 (位置) でフィールドを指定することもできます。You can also use the field numbers (or positions) instead of field names in the ORDER BY clause.

SELECT * 
    FROM tblCustomers 
    ORDER BY 2, 3 DESC 

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.