• ベストアンサー

アクセス フォーム上でのレコード抽出・ソート

こんにちはアクセス2000で管理表をつくっています。 「工事マスタ」 工事ID、顧客ID、工事部門、契約日、請負額、追加額(以下略) 「顧客マスタ」 顧客ID、顧客名(以下略) などがあり、工事マスタを基にクエリAを作成し、 それをコントロールソースにもつフォームAを作成しました。 フォーム上のボタンやテキストボックスで レコードの抽出(フィルタ)を行いたいのですが いろいろ調べてみましたが、初心者なもので どう手をつけていいのかわからず困っています。 やりたいことは 1)工事部門(1・2)で、(1)のみのレコードを表示する その検索方法をコンボボックスでつくりたい 2)発注者名で検索をかけ、該当するレコードのみを表示する その検索方法をテキストボックスでつくりたい 3)契約日のソートをかける実行ボタンを配置したい 4)「請負額」「追加額」にそれぞれ消費税を計算して、その合計額「請負額+追加額+請負税+追加税」の《総合額》を自動計算しています。 その《総合額》の¥●●●~¥●●●という範囲に値するレコードを抽出したい です。 説明が足りない部分もあるかと思いますが どなたかご存知の方お知らせくださいませ。 また、参考サイトなども教えていただけると助かります。 どうぞよろしくおねがいします。

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

  • ベストアンサー
  • gadd3
  • ベストアンサー率46% (211/451)
回答No.2

1)はフォーム上の「工事部門」フィールド上で右クリックして  「フィルタの対象」に1を入れてEnter。 2)もフォーム上の「発注者名」フィールド上で右クリックして  「フィルタの対象」に「名前」か「*名前の一部*」を入れてEnter。 3)は「契約日」フィールド上で右クリックして、降順・昇順お好きな方で並べ替え。 4)はフォーム上の「総合額」フィールド上で右クリックして  「フィルタの対象」に「Between 金額 And 金額」と入れてEnter。 こうすればプログラムを一行も書くことなく、 というか特に何もしなくても、目的が達成できると思います。 フォームフィルタの機能でもいいですしね。 Accessだと、ついつい、無駄なコマンドボタンやコンボボックスを作って しまいがちですが、出来合い機能をきちんと知り、 効率よくコーディネイトして使うことを 考えるほうが、お仕事にプラスですよ(^^) 右クリックでのフィルタは非常に重宝しますので、 下手に機能追加するより、右クリックフィルタの説明書書いたほうが あとあとも、全てのフォーム、クエリ、テーブルに使用でき、 圧倒的に効率的です。 右クリックの「選択フィルタ」はドラッグした語句での絞込みも出来ます。 で、 ・テキストの先頭でドドラッグして「選択フィルタ」を押せば前方一致、 ・末尾だけをドラッグすれば後方一致、 ・先頭でも末尾でもない中ごろを部分的にドラッグすれば部分一致(あいまい一致)で 絞り込まれます。(フィルタがかかります) フィルタ/並べ替えの解除、でもとに戻ります。 ご存知でしたでしょうか?

kuragemama
質問者

お礼

ご丁寧なアドバイスありがとうございます。 右クリックでのフィルタは私は知ってたのですが アクセスを全く知らない人が触るのと フォーム上でどうにかしたいという上からの命令で 困っています。。 もう少し試行錯誤してみますね ありがとございました!

その他の回答 (4)

noname#77348
noname#77348
回答No.5

#1です。 他の回答者の邪魔をしたくないので、本題の回答は控えます。 別に不愉快な思いはしていません。 むしろあなたの素直な態度がうれしいです。 質問には、過程や背景についてある程度の説明が必要だと思います。 丸投げであったり、唐突なものであってはいけないのです。 これからもよい質問を心がけてください。 そういう質問にはよい回答があるはずです。 以上

kuragemama
質問者

お礼

こんばんは ご丁寧にお返事いただき、ありがとうございます^^ 長くなるとややこしくなるかなと簡潔に質問したつもりが かえって、配慮のない質問になってしまい、反省しております。 よい質問にはよい回答。そうですよね。 言葉選びが不得手でお恥ずかしい限りですが、 よい質問を心がけていきたいと思います ありがとうございます

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.4

すみません。訂正です。 ●並べ替えをする場合 「OrderBy」プロパティで並べ替え条件の設定(=指定)をします。 で、「FilterOn」プロパティでフィルタを適用/解除します。 は ●並べ替えをする場合 「OrderBy」プロパティで並べ替え条件の設定(=指定)をします。 で、「OrderByOn」プロパティで並べ替えを適用/解除します。 でした。 ご迷惑をおかけして 誠に申し訳ありませんでした。 ではでは(^^)

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.3

VBAですと・・・、 ●フィルタをかける場合 「Filter」プロパティでフィルタ条件の設定(=指定)をします。 で、「FilterOn」プロパティでフィルタを適用/解除します。 ●並べ替えをする場合 「OrderBy」プロパティで並べ替え条件の設定(=指定)をします。 で、「FilterOn」プロパティでフィルタを適用/解除します。 以上をコマンドボタンのクリックイベントや テキストボックスの更新後処理イベントなどに書きます。 Access filteron Access orderbon などの語句でGoogle検索等すればいろいろとサンプルが出てきます。 ご参考にしてください。 http://www.mahoutsukaino.com/ac/ac2000/ac2000/kensakua/kensaku04.htm など。 >アクセスを全く知らない人が触るのと >フォーム上でどうにかしたいという上からの命令で >困っています。。 うーん、ということですと、なおさらフォーム上での右クリックがおすすめなんですが・・・(^^) 私なら以降のように上司に言ってしまって、できるだけ作りこみはしないです。面倒くさいから。 (01)右クリックの操作説明書を書いてまず上司の方にお見せします (02)実際に操作します。    (03)そして次のような説明をします。    この右クリック機能はすべてのAccessファイルで使える共通操作で、かつ、    一番効率よく、安く作れます(時間ゼロでタダで作れます)。    操作は簡単だから忘れても説明書見ればすぐに誰でも思い出せます。    また、無理に覚える必要はありません。    この操作説明書は全員にお配りしますので。    他の機能の追加では、込み入った作りこみが発生し、色々と面倒です。    もちろん作れといわれれば作りますが、結局色々と作りこんでも    この機能以上効率の良い操作ができないケースも少なくないです。    もし、それでもよければ、「これとほとんどかわらない機能」を    時間をかけて作りますけど、本当にいいですか? という感じです。 で、それでも 「多少の時間(もしくは費用)がかかってもいい。やっぱり作ってくれ」と 上司がおっしゃるなら、作ります。 その際は前述のプロパティを使って、VBAでどのフォームからでも呼び出して使えるような汎用的なものを作成します。 抽出作業の頻度が少なければなおさら、Accessのできあい機能を使います。 正直なところ、 「パソコン使うんだったらワイルドカードとBetweenと、 <、 >、#、""、''、 くらい使えるようになってくれよ。それだけでいいんだから。それだけ覚えてくれるだけで、どれだけ無駄な作りこみが減らせるかわからないよ。」 という思いにかられることも多いです(^^) 無駄話、誠にすみませんでした。 がんばってくださいね(^^)

kuragemama
質問者

お礼

こんにちは インフルエンザにかかってしまい、 お礼が遅くなりまして大変失礼いたしました。 すごくご親切に回答いただき、感謝しています ありがとうございます! 職場復帰したら、いろいろためさせていただきますね 右クリック。。。そうなんですよね 私もそのほうが簡単だ~!と心の中で叫んで一応説明もしたのですが 「それでもやってくれ」の回答だったので はいと言うしか。。苦笑 楽しい横道話もありがとうございました^^

noname#77348
noname#77348
回答No.1

申し訳ないけど、どこまで勉強してるのかな。 「課題の丸投げ」は禁止行為って知っていますよね。 とにかく参考書籍を読み漁って勉強する、自分で試すこと。 それからでないと、回答できませんよ。 以上

kuragemama
質問者

お礼

こんにちは 課題の丸投げが禁止行為だとは知りませんでした アクセスは1級程度ですが、ブランクがあるので初心者と変わりません。 参考書も読みあさり、ネットでも検索し、 いろいろ自分でも触っているのですが時間が限られているのと 色々エラーなども起きたので、 過程を説明するとややこしくなりそうなのと 少しのヒントでも得られればと思って質問させていただきました。 私の質問で不愉快な思いをさせてしまってすいません。

関連するQ&A

専門家に質問してみよう