ALL、DISTINCT、DISTINCTROW、TOP 述語の使用例
次の例では、Customers テーブルと Orders テーブルを CustomerID フィールドで結合するクエリを作成します。Customers テーブルには重複する CustomerID フィールドはありませんが、得意先からはそれぞれ多数の注文を受けているため、Orders テーブルには重複する CustomerID フィールドがあります。DISTINCTROW 述語を使用すると、少なくとも 1 つ以上の注文を出している会社名の一覧を作成できます。ただし、Orders に関する明細は含まれません。
Sub AllDistinctX()
Dim dbs As Database, rst As Recordset
' この下の行を、使用しているコンピュータ上の
' Northwind のパスに変更してください。
Set dbs = OpenDatabase("Northwind.mdb")
' Customers テーブルと Orders テーブルを
' CustomerID フィールドで結合しています。
' 少なくとも 1 つ以上の注文を出している
' 会社名の一覧を選択します。
Set rst = dbs.OpenRecordset("SELECT DISTINCTROW " _
& "CompanyName FROM Customers " _
& "INNER JOIN Orders " _
& "ON Customers.CustomerID = " _
& "Orders.CustomerID " _
& "ORDER BY CompanyName;")
' Recordset を作成します。
rst.MoveLast
' EnumFields を呼び出し、Recordset の内容を出力します。
' Recordset オブジェクトと必要な
' フィールド幅を渡します。
EnumFields rst, 25
dbs.Close
End Sub