- ベストアンサー
Access2000におけるソートの仕方について
サブフォームで金額の低いものから順にソートできるようにしたいのですがわかりません!どなたか教えてください! サブフォーム(帳票フォーム)で金額を入れていき、ソートというコマンドボタンをクリックすると金額が低いものから順に並びかえるようにしたいのです よろしくお願いします
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
親フォームのコマンドボタンの名前を「並べ替え」サブフォームの名前を「SUB」(サブフォームの名前と言うのはオブジェクト名ではなく親フォームをデザインビューで開いた時のプロパティシートで指定するヤツです。埋め込み0とか埋め込み1とか。)サブフォームの並べ替えのキーになるフィールド名を「金額」とします。 Private Sub 並べ替え_Click() Me.サブ.Form.OrderBy = "金額 ASC" Me.サブ.Form.OrderByOn = True End Sub でどうでしょうか?
その他の回答 (4)
- MovingWalk
- ベストアンサー率43% (2233/5098)
#1です。 >サブフォームにコマンドボタンがなくてもできますか? メインフォームからサブフォームを参照する時は、 Me.サブフォーム名.Form.OrderByOn = True とすればいいです。 その前にコードで、Form.OrderBy の値もセットしておいた方がベターです。 既に、#4の方が書かれているようにすればいいと思います。
- ema_0222
- ベストアンサー率34% (63/185)
サブフォームで、テーブルに直接データ書くとすると サブフォームのレコードソースをテーブルではなくクエリ(現在のテーブルを基にしたもの)にしてしまい[金額]フィールドに並べ替えを設定しておきます。 メインのフォームにコマンドボタンをつくり Private Sub ****_Click() '****はコマンドボタン名です DoCmd.Requery End Sub と書いて入力した後に再クエリさせると並び替えになります。 クエリの数が多かったりするとえらく時間がかかってしまいますが。
- oka123
- ベストアンサー率31% (69/219)
こんにちわ 私は下記のマクロを作成して いろいろソートされた結果を表示しています ---------------------------------------- 値の代入 **1段目と2段目にそれぞれを書きます** [Forms]![親フォーム名]![子フォーム名].[SourceObject] "サブフォーム名" 値の代入 [Forms]![親フォーム名]![子フォーム名].[LinkChildFields] "連結する時の子のキー項目名" 値の代入 [Forms]![親フォーム名]![子フォーム名].[Form].[RecordSource] "ソート指定をしたクエリー名" の3行のマクロをつくり ボタンのマウスクリックイベントで実行します ただし、項目を修正した直後に表示替えを実行した場合 「項目が更新されています」 という警告は出るかもしれません recordsorce sortquery名
- MovingWalk
- ベストアンサー率43% (2233/5098)
サブフォームのプロパティの並べ替え(OrderBy)に[金額]を設定しておき、 ソートボタンのイベントプロシージャで、サブフォーム.OrderByOn = True にすればできませんか。
補足
サブフォームにコマンドボタンがなくてもできますか? フォームにソートボタンがあり、それをクリックしたときサブフォームの金額を低いものから順にソートしたいのですが…