例1: SQL = "SELECT 製品No FROM 製品マスター ORDER BY 単価 * 在庫数 "
この場合、「単価 * 在庫数」を昇順で製品Noを取り出します。
例2: SQL = "SELECT 製品No , 単価 * 在庫数 AS 在庫金額 FROM 製品マスター ORDER BY 単価 * 在庫数 "
この場合、「単価 * 在庫数」を昇順で製品Noと計算結果の「在庫金額」を取り出します。
ORDER BY に計算結果の「在庫金額」を指定することはできません。
サンプルソフト
[実行時の画面]
「ORDER BY 打率」ボタンをクリックすると、安打÷打数×100 の計算結果で並び替えレコードを表示します。
■打率を計算し並び替え抽出した画面
Format関数を使わないと下記になります。
13: 130: 20: 15.3846153846154
11: 150: 25: 16.6666666666667
10: 130: 30: 23.0769230769231
16: 100: 45: 45
[野球データベース テーブル]
選手ID 打数 安打
10 130 30
11 150 25
13 130 20
16 100 45
[コード]
Option Compare Database
Private Sub コマンド8_Click()
Dim SQL As String
Dim rs As Recordset
Me!テキスト1 = Null
SQL = "SELECT 選手ID,打数,安打,format(安打/打数*100,
'##0.00') AS 打率 FROM 野球データベース ORDER BY 安打/打数*100"
Set rs = CurrentDb.OpenRecordset(SQL)
Do Until rs.EOF
Me!テキスト1 = Me!テキスト1 & rs![選手ID] & ": " & rs![打数] & ": " & rs![安打] & ": " & rs![打率] & vbCrLf
rs.MoveNext
Loop
Set rs = Nothing
End Sub
サンプルソフトのダウンロード