質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

2463閲覧

Accessで一覧の上位100位を表示&検索したい

d_neko

総合スコア108

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2018/07/15 12:54

編集2018/07/15 14:32

Accessで、フォームに一覧表示させていました。
フォームのプロパティのデータソースは、テーブルを指定していました。

しかし、データが増えてきたので、
データの上位100位を表示させたいと思っています。

そこで、フォームのデータソースをクエリにしました。
そのクエリは、top100を設定しました。

すると、一覧はデータの上位100位が表示されます。

その一覧は、検索できるようにしています。
全件表示させているときは、検索できました。

しかし、フォームに、top100のクエリをデータソースにしていると、
その100件以外のデータは検索できません。

普段は、データの上位100件を一覧を表示させつつ、
すべてのデータから検索するように、
ひとつのフォームで出来ないでしょうか。

よろしくお願いします。

イメージ説明

フォームのクエリ
SELECT TOP 5 [テーブル1].[no], [テーブル1].名前
FROM テーブル1;

検索のクエリ
SELECT [テーブル1].[no], [テーブル1].名前
FROM テーブル1
WHERE ((([テーブル1].名前) Like "" & [Forms]![テーブル1]![テキスト6] & ""));


改めて、質問用にフォームを作ってみました。
そのプロパティです。

イメージ説明

これでは、top100にフィルターかけているようなきがします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

100件に対して検索した状態なのでしょう。
フィルターではなく検索条件としたクエリーをレコードソースにしてみて下さい。
追記

フィルターを消して、以下のクエリーをレコードソースにしてしてみて下さい。

SQL

1SELECT TOP 100 [テーブル1].[no], [テーブル1].名前 2FROM テーブル1 3WHERE [テーブル1].名前 Like "*" & Nz([Forms]![テーブル1]![テキスト6]) & "*"

投稿2018/07/15 13:27

編集2018/07/15 15:08
sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

d_neko

2018/07/15 13:39

検索は、ボタンを押すとマクロが実行します。 マクロは、まずフォームを開きます。 そして、クエリを実行します。 クエリは、テーブルに対してです。 条件として、テキストボックスの文字を指定します。 クエリだけ実行すれば、検索できます。 どうやらフォームに設定したクエリが邪魔しているようです。
sazi

2018/07/15 13:44

その2つのクエリーを質問に追記してください。 SQLビューに切り替えて内容をコピぺしてください
d_neko

2018/07/15 14:19

クエリを追記しました。よろしくお願いします。
d_neko

2018/07/15 15:18

追記ありがとうございます。 出来たようです。 でも、検索結果もtop100だけですよね。 検索結果はすべて表示(100以上)表示できるようにできないでしょうか。
sazi

2018/07/15 15:47 編集

TOP 100外せばいいですけど、質問の意味が無くなりますよ?
d_neko

2018/07/15 15:48

最初に説明していなくてすみません。 今のところ、教えていただいたsqlで出来ます。 しかし、質問していて思いついたのですが、 検索無しの状態→100件表示 検索→すべて(場合によったら100件以上) topを柔軟に設定する方法はありませんか。
sazi

2018/07/15 15:49

VBAでレコードソースを書き換えれば可能です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問