みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アクセスで任意の件数を抽出するクエリでお知恵をお貸し下さい!

アクセス初心者です。
Win XP
Access2002
フォーム上にあるテキストボックスに任意の数値を入力しておき、入力した任意の数分のレコードを抽出してくるクエリを組みたいのですが、知恵が不足して出来ません。
SQLでselect top [Forms]![フォーム名]![テキストボックス名] など試してみたのですがダメでした。
どなたかお知恵をお貸し下さい。
できれば、SQL分でやるよりクエリの抽出条件の式でできればとも思っております。
宜しくお願いします。

投稿日時 - 2006-04-15 13:56:29

QNo.2093364

すぐに回答ほしいです

質問者が選んだベストアンサー

TOP値も試してみたということは何かの順番に取り出せばいいのですね

クエリで順位を求めるフィールドを作りそこの抽出条件に
パラメータで取り出し数を与えるようにすればいいいのでは

順位:DCount("*","テーブル名","フィールド名<" & [フィールド名]) + 1

抽出条件
<=Forms!フォーム名!条件テキストボックス名

投稿日時 - 2006-04-16 20:52:22

お礼

早々のご回答ありがとうございます。

しかし、あまりにアクセス初心者で・・・

>クエリで順位を求めるフィールドを作りそこの抽出条件に
>パラメータで取り出し数を与えるようにすればいいいのでは
>順位:DCount~

の部分の意味が今の私には理解困難です。
いろいろアクセスの教本で調べてみたのですが、
どうもこれの意味を理解することができませんでした。

お手数ですが、ご教授願えませんでしょうか?

投稿日時 - 2006-04-18 06:11:15

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

クエリで式フィールドを作るだけです
クエリデザインビューで言えば、フィールド欄に
>順位:DCount~
を書き、そのフィールドの抽出条件欄に
<=Forms!フォーム名!条件テキストボックス名
を書きます

教本でいえばクエリのところをよく勉強してください

投稿日時 - 2006-04-18 12:34:42

お礼

ありがとうございます。
お蔭様で出来ました。
初心者にお付き合い頂き、ありがとうございました。

投稿日時 - 2006-04-18 13:42:21

ANo.2

#1の方が回答してありますが
順位:DCount("*","テーブル名","フィールド名<" & [フィールド名]) + 1
として抽出条件を
<=Forms!フォーム名!条件テキストボックス名
ではそのままでは正しく抽出できない場合があります。
DCountを使ったフィールドから抽出する場合
フォームの抽出条件を入力するテキストボックスのプロパティで書式を[数値]にするかクエリ上で抽出条件を下記のように長整数型に変換すれば出来ます。
<=CLng([Forms]![フォーム名]![テキストボックス名])
とすれば抽出できます。

SQLも簡単です。SQLでは下記で同様になります。

SELECT テーブル名.*, DCount("*","テーブル名","フィールド名<" & [フィールド名])+1 AS 順位
FROM テーブル名
WHERE (((DCount("*","テーブル名","フィールド名<" & [フィールド名])+1)<=CLng([Forms]![フォーム名]![テキストボックス名])));

投稿日時 - 2006-04-17 14:46:51

お礼

ありがとうございます。
お蔭様で解決できました。

ご丁寧な手ほどき、本当にありがとうございました。

投稿日時 - 2006-04-18 13:57:40

あなたにオススメの質問