- ベストアンサー
ACCSESS2000での検索
[顧客]というテーブルに、[登録日付]というフィールドがあるとします。 検索フォームを作成し、そこに人数を入力するためのテキストボックスを配置します。 そして、この人数の数値(a)を使って、 [登録日付]の新しい方から a人を抽出するよい方法はありませんか。 出来れば、SQL文で作り、クエリーを作ってレポートを開いたり、 テキストなどにエクスポートしたいのですが。 なるべくコードがすっきりするようなものがいいのです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
select TOP 10 ... の10の部分を可変にしたいんですよね。 私の力不足かもしれませんが、この部分はパラメータやフォームの値の参照が使えないと思います。 そこで、フォームにコマンドボタンを配置し、VBAで一時テーブルを作成するとよいと思います。 その後のレポートやエクスポートはこの一時テーブルを参照するようにします。 コマンドはしたのような感じですかね。 --------------------------------- Dim Ninzuu As Long Dim strSQL As String Ninzuu = Me![人数] strSQL = "select top " & nunzuu & " * " strSQL = strSQL & "Into [一時テーブル] " strSQL = strSQL & "from [顧客] " strSQL = strSQL & "ORDER BY [登録日付] DESC " DoCmd.SetWarnings False DoCmd.RunSQL strSQL -----------------------------------------
その他の回答 (2)
- ojinojin
- ベストアンサー率0% (0/1)
テーブル、クエリー、フォームは既知とします。 ポイントは下の3つです。 (1) フォームをコントロールソースを消します。 テキストも同じです。 (2)フォームウィザードでクエリーを開くボタンを作ります。 (2) クエリーの「登録日」ほ降順とし、「人数」の抽出条件を (3) =[Forms]![F_顧客]![人数]とします。
お礼
ありがとうございました。
- yanmaa
- ベストアンサー率45% (207/457)
例えば10人の顧客テーブルの内容を出すなら下記のSQLかな? SELECT_TOP_10_[顧客].*_FROM_[顧客]_ORDER_BY_[顧客].[登録日付]_DESC 注意:_はスペースの意味 なお、AccessのSQLのヘルプに記載されてますよ。
お礼
"TOP"というキーワードがあることは、知りませんでした。ありがとうございました。
お礼
"TOP"というキーワードがあることは、知りませんでした。ありがとうございました。