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