アクセスVBA TOP値を変数
フォーム内テキストボックスの数値を、SELECT TOP の変数にしたくて、コマンドボタンを押した時に、下記VBAを書いたところ、実行時エラー7874 と出て、下から2行目でエラーとなりました。
Private Sub command1_Click()
Dim 抽出数 As Integer
Dim mySQL As String
抽出数 = Me![text1]
mySQL = "SELECT * FROM T_1 AS Q_TEMP WHERE 顧客CD in (SELECT TOP " & 抽出数 & " 顧客CD FROM T_1 WHERE 支店CD=Q_TEMP.支店CD ORDER BY 売上金額 DESC,顧客CD) ORDER BY 支店CD, 売上金額 DESC , 顧客CD;"
DoCmd.OpenQuery mySQL
End Sub
やりたい事は、テーブル:T_1に下記レコードがあり、各支店ごとのトップ売上金額2を抽出したいのと、トップ2を変数にしたいのです。
支店CD 顧客CD 売上金額
1 11 1,000
1 12 2,000
1 13 3,000
1 14 4,000
2 15 2,000
2 16 3,000
2 17 4,000
2 18 5,000
3 19 5,000
3 20 5,000
3 21 5,000
3 22 5,000
を、上記SQL文で、下記の結果にしたい
支店CD 顧客CD 売上金額
1 13 3,000
1 14 4,000
2 17 4,000
2 18 5,000
3 19 5,000
3 20 5,000
(売上金額が同じなら、顧客CDの小さい方から2つ)
どこが間違っているか教えてもらえますか?
お礼
想像以上に素早いご回答ありがとうございます。 おかげさまで、これで先に進めます。