access2000で受注管理をおこなっております。
フォームから条件を指定し,クエリでテーブルを検索し結果を表示している
のですが、データが多すぎて困っています。
そこでフォーム上から検索前に表示させる件数を指定する機能をつけたいと
考えています。
100件と指定したとすると、まず100件表示して次の100件を表示する、などの操作が
できればいいのですがやり方がわかりません。
せめて、表示件数に達すればあとの検索はしないといった表示件数を制限する
方法だけでも教えてください。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
shu_bi_tさん、こんにちわ。
標記の件はもう解決したでしょうか?遅くなりましたが下にサンプルを書いておきます。
ここから-------------------
Option Compare Database
Option Explicit
Dim gCNT As Long '表示番号の位置を保持する変数
'次の表示を行うコマンドボタンのイベント
Private Sub cmdNext_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim SQL As String
'T_商品のところは表示したいテーブル名です
'商品IDのところはオートナンバー型の列名です
txtKensu.SetFocus
gCNT = gCNT + txtKensu.Text
SQL = " SELECT * FROM T_商品 " & _
" WHERE 商品ID " & _
" BETWEEN " & gCNT - txtKensu.Text + 1 & _
" AND " & gCNT
Set db = CurrentDb()
Set rs = db.OpenRecordset(SQL)
'sub結果はサブフォームの名前です
Set Me.sub結果.Form.Recordset = rs
Set rs = Nothing
Set db = Nothing
End Sub
'前の表示を行うコマンドボタンのイベント
Private Sub cmdPrev_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim SQL As String
txtKensu.SetFocus
gCNT = gCNT - txtKensu.Text
SQL = " SELECT * FROM T_商品 " & _
" WHERE 商品ID " & _
" BETWEEN " & gCNT - txtKensu.Text + 1 & _
" AND " & gCNT
Set db = CurrentDb()
Set rs = db.OpenRecordset(SQL)
Set Me.sub結果.Form.Recordset = rs
Set rs = Nothing
Set db = Nothing
End Sub
Private Sub Form_Load()
'初期表示を空にする処理
'商品番号のところに好きな列名を入れてください
Me.sub結果.Form.Filter = "商品番号 =''"
Me.sub結果.Form.FilterOn = True
End Sub
Private Sub txtKensu_Change() '表示させたい件数を入力するテキストボックス
gCNT = 0
End Sub
ここまで----------------------------
上のコードを実行させたいフォームのモジュールに書いてください。
それと、表示させたいテーブルにオートナンバー方の列を1つ追加して下さい。
あと、アクセスのVBEでツールバーの ツール→参照設定 を実行してMicrosoft DAO 3.6 Object Library にチェックを入れてください。
フォームをデザインモードにして、適当なオブジェクトを右クリックしてイベントのビルドをクリックするとそこに行けます。
不親切なコメントしかありませんが、ロジック的にはそんなに難しくないのですぐ理解できると思います。
ささっと作ったので、テキストボックスに何も入力されていないときとか、表示件数をオーバーしたときの処理を組み込んでいませんのでその辺は了承して下さい。
ご丁寧にありがとうございます、分らないので機能自体放棄しておりました。エラー処理は自分で何とかできそうです、ありがとうございました.
No.2
- 回答日時:
SQLビューでしたら
SELECT と フィールド名 の間に top ** と入れれば
その件数だけの検索ができます。
例えば、100件だけ検索の場合は次のようになります。
元のSQL
select 商品名, 単価
from 商品テーブル
修正後SQL
SELECT TOP 100 商品名, 単価
from 商品テーブル
No.1
- 回答日時:
表示件数を制限するには表示したいクエリを開いてファイルの下のビューのアイコンの矢印をクリックするとSQLビューというのがあります。
SQLビューにすると現在表示されているSQL分が表示されますのでその文の最後のセミコロンを消去して、”WHERE 列の名前 BETWEEN 1 AND 100;”というのを追加するとその列の値が1~100までの行だけが表示されます。
最初の話を実現しようとすると今挙げた例で1と100の部分に変数を使用してプログラムで中身を替えていく必要があります。
ちょっと詳しい設計が分らないので今はこれだけのことしかいえませんが。
よかったでしょうか?
この回答への補足
有難うございます。最低限の表示制限はそれで大丈夫でした。
プログラムの知識が希薄なものでそれ以上のことができそうにないです。。。
検索結果の表示はサブフォーム内でデータシート形式で行っております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- Excel(エクセル) エクセルで、2つのセルに検索値を入れて結果を一覧表示させる 1 2023/07/10 10:26
- Yahoo!メール yahooメールの検索結果を全て表示するには? 1 2023/05/16 14:34
- Excel(エクセル) Excelで、別シートへ情報を参照表示する関数について。 2 2023/06/26 09:58
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/08 09:05
- Excel(エクセル) ExcelのVLOOKUP関数 7 2022/08/23 06:46
- WordPress(ワードプレス) WordPressのサイトにPDFをアップロードした際にGoogleなどの検索結果に出ないでほしい 1 2022/08/03 10:44
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのフォーム上にレコード...
-
accessの自動更新処理をできな...
-
ACCESSのフォームからデータの...
-
選択したチェックボックスのみ...
-
アクセス非連結フォームのテキ...
-
Accessのハイパーリンクのパス...
-
Accessのフォームのスタイルの...
-
オートシェイプのような作図入...
-
Access上でホイールマウスの機...
-
Accessのフォーム画面について
-
ADOでRecordsetオブジェクトを...
-
accessの入力フォームでの入力規制
-
アクセスのフォームで連結コン...
-
Access 別フォームへの再クエ...
-
Accessフォームのテキストボッ...
-
テキストボックス(アクセス)内...
-
ACCESS(アクセス):一度の入力で...
-
access 非連結のサブフォームの...
-
【ACCESS】テーブルの内容がフ...
-
帳票フォームで製品写真を表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのフォームからデータの...
-
選択したチェックボックスのみ...
-
アクセスのフォームのビューが...
-
ACCESSで入力フォームをHTMLフ...
-
Accessのフォーム上にレコード...
-
Access 別フォームへの再クエ...
-
Accessフォームのテキストボッ...
-
accessの自動更新処理をできな...
-
「メソッドまたはデータメンバ...
-
アクセスでテーブルの変更内容...
-
アクセスでの項目追加について...
-
Accessのフォームで作業領域を...
-
Access フォーム上でコンボボッ...
-
アクセス 0以外をカウントす...
-
ACCESSの表形式で、レコードを...
-
Accessのハイパーリンクのパス...
-
ADOでRecordsetオブジェクトを...
-
Access2002 フォームを閉じるた...
-
ACCESSで、フォームのレコード...
-
Access runtimeでテーブル、ク...
おすすめ情報