Accessで条件に基づいてデータの並び替えをする方法

このQ&Aのポイント
  • Accessで条件に基づいてデータの並び替えを行いたい場合、フォーム上のボタンを使用することができます。
  • 具体的には、対象フォームにデータを表示する際に使用するクエリーを基に、並び替えを行います。
  • 項目BBと項目CCの条件を使って選択クエリーGGを元に、並び替えを行うことができます。
回答を見る
  • ベストアンサー

Accessボタンで並び替え

ACCESS97を使用しています。 フォーム上のボタンで、並び替えを実行したいのです。 対象フォームは、あるデータ(テーブル名:AAA)の 項目BBと項目CCの条件を使って選択クエリーGG を元に 帳票フォームで表示しています。 フォームFFF上には、BBと CCの入力テキストBOX、BB,CCがあるととします。 BBとCCでフィルタをかける場合、 DoCmd.ApplyFilter "", "[GG]![BB] =[Forms]![FFF]![BB]" & _ "AND [GG]![CC]= [Forms]![FFF]![CC]" というマクロでフィルタ実行されたデータが表示されますが、 項目BB、CCで、昇順、降順にソートしたい場合、 そのようなマクロはあるのでしょうか? 宜しくお願いします。

  • cdma
  • お礼率36% (91/247)

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

  • ベストアンサー
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

コントロールソース名を指定する必要があったような気がします。 昇順 Me.OrderBy = "[BB] ,[CC]" Me.OrderByOn = True 降順 Me.OrderBy = "[BB] DESC,[CC] DESC" Me.OrderByOn = True

cdma
質問者

お礼

ありがとうございます。 少しやってみたましたが、 上手くいきそうです。

関連するQ&A

  • 【アクセスVBA】テーブルにフィルタをかけたい

    Sub マクロ() DoCmd.OpenTable "Tテーブル", acViewNormal, acEdit DoCmd.ApplyFilter , "番号 = '123'" End Sub Tテーブルを開き、フィルタをかけたいのですが テーブルを開くまではできるのですが、 フィルタをかける行では 『ApplyFilter アクションの実行はキャンセルされました。』 になってしまいます。 DoCmd.OnFilter , "質問番号 = '0'" でもエラーになり、コードの実行すら行えません。 フォームではなくテーブルにフィルタをかけるにはどうすればいいでしょうか? よろしくお願いします。

  • VBAではなく、マクロでのフィルターのかけ方を教え

    accessのVBAではなく、マクロでのフィルターのかけ方を教えてください。 テーブル1には フィールド名:moji データ:テキスト型 文字列1 文字列2 ・ ・ ・ というデータがあります。 テーブル1を基にしたフォームには 画像のように、 コントロールソースにmojiを紐付けたテキストボックスを配置しました。 その際、マクロを実行して「文字列1」を抽出するフィルタの実行をしたいのですが マクロの作り方がわかりません。 マクロのアクションは「フィルタの実行」にしたのですが フィルタ名には何を入れればいいのでしょうか? とりあえずtestと入れました。 次に、Where条件式には [Forms]![フォーム1]![moji]="文字列1" といれました。 この時点ではエラーにならないのですが フォームを開いて、マクロ1を実行すると 「このウィンドウでは"ApplyFilter/フィルタの実行"アクションを実行できません。」 となってしまいます。 マクロの作り方を教えてください。

  • Access マクロ SQLは合ってるのに②

    Microsoft Access でマクロ(VBAではない)を制作しています。「検索画面」フォームに情報を入力して「検索実行」を押すと「全項目」フォームがフィルターされて表示するようにしたいです。 制作したマクロ① フォームを開く フォーム 全項目 Where条件式 [投稿者]=[Forms]![検索画面]![投稿者] 制作したマクロ② ローカル変数の設定 変数名 [SQLCode] 値の代入 変数 [LocalVar]![SQLCode] 値 "[投稿者]=[Forms]![検索画面]![投稿者]" フォームを開く フォーム 全項目 Where条件式 [LocalVar]![SQLCode] ローカル変数の削除 変数 [LocalVar]![SQLCode] このマクロを実行したところ、マクロ①は正しく実行されましたが、マクロ②はフィルターされずにフォームが表示されました。 どこを直せば良いのか教えてください。

  • VBAによるフィルターでレコードを抽出するには

    レコードの抽出をマクロで行っております。 アクション欄に「フィルターの実行」を設定しWhere条件式に[氏名フリガナ] Like [Forms]![フォーム名]![抽出テキスト名] & "*" Or [氏名] Like [Forms]![フォーム名]![抽出テキスト名] & "*"  と記述して上手くいってます。 これをVBAで行いたいのですが、上記マクロをツールの「マクロをVisual Basic に変換」した式を使用したらエラーになりました。 ちなみにマクロ変換した式は DoCmd.ApplyFilter " ", "[氏名フリガナ] Like [Forms]![フォーム名]![抽出テキスト名] & ""*"" Or [氏名] Like [Forms]![フォーム名]![抽出テキスト名] & ""*""" です。 どこを訂正したら上手くいくのかご指導をお願い致します。

  • ★アクセス2002★一部の単語で抽出する記述

    winXP 顧客名簿フォームに非連結のテキストボックスを2つ作成し(テキスト1,2)、コマンドボタンに下記の様に記述し、[カナ]と[都道府県]ごとに抽出できるようにしました。 Case 1 DoCmd.ApplyFilter , "[カナ] = Forms!顧客名簿フォーム!テキスト1" Case 2 DoCmd.ApplyFilter , "[都道府県] = Forms!顧客名簿フォーム!テキスト2" この場合、完全一致で抽出できるのですが、[テキスト1]に"ア"と入力して、"ア"で始まる顧客を抽出したいのですが、うまくいきません。過去に同じような質問があったので参考にして記述したのですがエラーになってしまったので、よいアドバイスをお願いします。

  • Access2007 サブフォームでのフィルタ方法(DoCmd.ApplyFilter)

    お世話になっております。 フォームAに検索ボックスを作り、検索ボタンを押すと下記のようにフィルタをかけています。 Private Sub 検索_Click() DoCmd.ApplyFilter , "(分類名 Like '*" & Me.検索語 & "*')" End Sub このフォームAをフォームBのサブフォームとして使いたいのですが、そこで検索を実行すると”実行時エラー2491”が出てフィルタができません。 (フォームAとフォームB間のリンクはありません) 他の方法でもいいのですが、サブフォームでフィルタを実行したいと思います。 ご教授いただければ幸いです。よろしくお願いいたします。

  • アクセスのフィルタについて

    アクセスのフォーム[フォーム1]にフィルタをかける処理についてですが、入力欄の一つ[データ1]に値が入力されていないものだけを抽出する処理をマクロで行いたいと思っておりますが、上手くいきません。(何も抽出されない) フィルタの命令文を下記で書いておりますが、間違っているでしょうか。 Forms![フォーム1]![データ1] = Null

  • 帳票から単票フォームへの表示がうまくいきません

    ACCESSを始めたばかりです。 帳票表示されているレコードを単票フォームで表示させたいです。 テーブル「売上データ」がありこのテーブルを使って帳票用と単票用のクエリを作成、それぞれに対してフォームを作っています。 「売上データ」には、オートナンバーで No があり、これを主キーにしてあります。 クエリ Q帳票   フォーム F帳票 クエリ Q単票   フォーム F単票 フォームF帳票には、レコード内にボタンをおきました。 ボタンには、下記のマクロをつくって イベント クリック時 のところにいれました。 マクロ フォームを開く  フォーム名 :F単票  ビュー   :フォームビュー  フィルタ名 :  Where条件式 :[No]=[Forms]![F帳票]![No]  データモード:  ウィンドウモード:ダイアログ フォームF帳票 で、検索窓を作って検索した一覧の中から単票表示したいレコードのボタンをクリックして単票フォームをダイアログで開かせたいです。 上記のようにやってみたのですが、単票フォームは開くもののデータは空白になってしまいます。 ちなみに、作ったマクロを実行してみると Forms!F帳票!No とパラメータの入力を求められるので適当な数字をいれるとその数字に該当した単票フォームが開きます。 WEBで探して同じような感じで作ってみたのですがうまくいきません。 どこが間違っているのでしょうか? ちなみにクエリ Q単票 の Noの抽出条件に[Forms]![F帳票]![No]をいれてみたりもしましたがうまくいきませんでした(空白で単票が開く) 何卒よろしくお願いします。

  • AccessのDoCmd.ApplyFilterの使い方をおしえてください。

    社内で素人アプリケーション開発担当を買って出ているばか者です。 どうかこの私を助けてください。 商品マスターのようなものをサブフォームにして作っております。 メインフォームのコンボボックスの更新後処理イベントプロシージャに、そのサブフォームへDoCmd.ApplyFilterを実行させようとしてもうまく行きません。 「実行時エラー”2491”フォームがテーブルまたはクエリーを元に作成されていないので、このアクションは向こうです。」となってしまいます。ツールバーの選択フィルター使うとできるのですがイベントプロシージャでは不可能なのでしょうか。ご指導の程宜しくお願い致します。

  • コマンドボタンを押してフィルタを掛けたい(vba)

    すいません、、、教えてください。 テーブル1を作成し(図:左)、そのテーブルを元にフォームを作成したました。(図:右) フォーム上のコマンドボタンを押したら、 「いぬ」だけをフィルタ掛けるにはどういうコードを書けばいいですか? http://www.tsware.jp/study/vol4/docmd_5.htmを参考に Private Sub コマンド_Click() Forms!テーブル1.Filter = "名前 = 'いぬ'" DoCmd.RunCommand acCmdApplyFilterSort End Sub としてみたのですが 実行時エラー2046となって止まってしまいます。 続きを教えてくださいませ、、、 よろしくお願いします。

専門家に質問してみよう