• 締切済み

ACCESS データの抽出 同一フォーム内でコマンドボタンを使用して

ACCESSでシステムを作成中です。 T_全生徒情報 というテーブルがレコードソースに設定されています。 レコード数は約300あります。 フォームで学生一覧が参照できていますが数が多いので、条件を指定して絞り込めるようにしたいと考えています。 同一フォーム内に コマンドで「1年生」「2年生」「3年生」と作成し、 「1回生」を押すと、300のレコードの内、テーブルでフィールドの「学年」が「1」のレコード全てを表示できるようにしたいのです。 同じフォーム内でのレコードの抽出が難しく四苦八苦しています。 参考書などで Filter 等いろいろを試してみましたがうまくいきません。 どなたか教えてください!!

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

フィルタの書き方が間違っています フィールド名=条件 のように書いてください

maigo-no-koneko
質問者

お礼

いろいろありがとうございます まだまだ勉強不足のようなので、参考書などを買って勉強します。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

>フィールドの「学年」が「1」のレコード全てを表示できるようにしたいのです。 抽出条件にしろフィルタにしろ何にも難しいところは無いように見えますが・・・ そのうまく行かない方法というのをここにアップしたら

maigo-no-koneko
質問者

補足

コマンドボタンでもいいのですが、オプションボタンで(1年生 2年生 3年生 4年生)で選択をすると、1年から4年まで全員表示されていたレコードが、該当の学年のみ表示されるようにしたいんです。 テーブルのフィールドは、 学年 生徒番号 氏名 カナ氏名 住所 くらいです。 クリック時のオプションボタンのイベントインプロシージャの記述で Private Function setFilter(strItem As String) Dim strCrit As String Dim strOrder As String 'フィルタ対象が1回生の場合 If Me.フィルタ対象 = 1 Then strCrit = " 1 " strOrder = " 学年 " 'フィルタ対象が2回生の場合 Else If Me.フィルタ対象 = 2 Then strCrit = " 2 " strOrder = " 学年 " 'フィルタ対象が3回生の場合 Else If Me.フィルタ対象 = 3 Then strCrit = " 3 " strOrder = " 学年 " 'フィルタ対象が4回生の場合 Else If Me.フィルタ対象 = 4 Then strCrit = " 4 " strOrder = " 学年 " End If Me.Filter = strCrit Me.OrderBy = strOrder Me.FilterOn = True Me.OrderByOn = True End Function ですが、実行しても、選択している生徒の「学年」の部分が、オプショングループの選択した学年とリンクするように変わってしまいます。 したい動きをしてくれません・・・。涙

関連するQ&A

  • MS-ACCESSのボタンを作りました。

    例:前提として生徒のプロフィールテーブルがあるとします。   氏名,性別,テストの点数,偏差値,合否 といった各フィールドがあるとします。   別のテーブルに「合否」というテーブルがあり、合否フィールドに合格、不合格、審議 というレコードをもってるとします。 新しくフォームを作りました。フォーム上に既にレコードが入力された生徒のプロフィールが表示されています。ここに新しく「合否」テキストボックスを配置し、下にボタンを4つ配置して、それぞれ、合格、不合格、審議、やり直しといったボタンを作成するとします。 このそれぞれのボタンを押すと新しくフォーム上に作成された合否テキストボックスにそれぞれ、合格、不合格といったレコードが入力され、同時にそれが生徒のプロフィールテーブルの合否にも反映するような方法と、コマンドを教えてください。

  • ACCESSでの抽出について

    単純なクエリの抽出なのですが・・・。 区フィールド、町フィールドをクエリで作成して そのクエリを元に抽出フォームを作成しました。 そして、クエリの抽出条件に以下の式を入力しました。 Like "*" & [Forms]![F_抽出]![区] & "*" Like "*" & [Forms]![F_抽出]![町] & "*" しかし、大本のデータに [区]フィールド→品川区 [町]フィールド→空白 ・・・と、どちらかが空白の場合、そのレコード を抽出してくれません。 このように、空白フィールドを持つレコードをも 抽出するにはどのようにしたらようですか? 初歩的な質問で申し訳ありませんがよろしくお願いいたします。

  • [ACCESS]フォームで、レコードを抽出して編集するには?

    ACCESS2003、初心者です。 納品テーブルを作成して、それをフォームで入力しています。 フィールドは、 ID,製品名,セイヒンメイ,メーカー,仕入先,単価,在庫数,残高 です。 納品テーブルのレコードを元にフォームを作成したいのですが悩んでいます。 (1).納品テーブルから、表形式で商品レコードを並べて表示させる (2).セイヒンメイでグループ化。 (3).セイヒンメイを昇順で並び替え (4).在庫数、残高を編集 (1)~(4)の作業を行いたいのですが、いろいろ試した結果、うまくできません。 テーブル作成クエリ→実行→在庫フォーム開く(この場合のソース元はクエリ) のパターンで可能だったのですが、フォームを開いた時にグループ化や並び替えを行う方がスマートなので実現したいのです。 もしくは、フォーム上でコマンドボタンを押せばグループ化や並び替えができればそれでも構いません。 いろいろ調べて、SQL(GROUP BYやHAVING)を使わないと駄目なようですが、どのようなコードを書いたらよいのでしょうか?

  • MSアクセス 条件に合うデータのみを抽出してフォームを開けたい

    アクセスの初心者です。ご指導よろしくお願いします。 フォームで条件に合うデータのみを抽出してフォームを開けたいと四苦八苦しています。 現在は汎用フォームを使い、パスIDとパスワードを入れて照合するとDoCmd.OpenForm "フォーム名", , , " [社員No] = 1" で[社員No]「1」のデータのみ抽出した別フォームが開くようになっています。 希望としては、照合した人が照合した人が持つ[社員No]のデータのみが開くようにしたいと考えています。 パス管理のテーブルは ID、 社員No、社員名、パスID、パスワードになっています。   DoCmd.OpenForm "フォーム名", , , " [社員ID] = 1" の「=1」のところが[パスID][パスワード]と一致する社員Noに置き換える方法を教えてください。 わかりにくい質問で申し訳ないですが、よろしくお願いします。

  • ACCESS 同一フォームで異なるデータ表示できるか

    ACCESS初心者です。 ACCESSで住所録を作成し、普段はフォームで閲覧できるものを作成中です。 全てのデータを1つのテーブルにまとめると1000以上のレコードとなる為、グループごとに表示できればと思っています。(コンボボックスで一覧表示していますが、数が多すぎます) 1000のレコードはABCDE5つのグループ200人づつで構成されているとお考え下さい。 フォームは変更せず常に同一のものを使用したいです。表示するデータのみ何らかの方法で切り替えて表示したいと考えています。 どのような方法にすればそのような事ができるのでしょうか。 よろしくお願いします。

  • 条件付きでACCESSのデータを抽出したい

    2分に1レコード生成されるmdbファイルがあります。 2分置きに排出数フィールドに値が記載されています。 停止する際は排出数フィールドに0が書き込まれ、動いてる時は最低1以上の値が入っています。 日時                      排出数 201501060700                      2000 201501060702                      2000 201501060704                      0 201501060706                      0 201501060708                      2000 201501060710                      2000 201501060712                      2000 201501060714                      0 201501060716                      2000 201501060718                      0 201501060720                      0 .... 排出数フィールドに0が書き込まれた最初のレコードを抽出します。 その後又1以上の値が書き込まれたら、次に0の値が最初に書かれたフィールドを抽出したいです。 上記の場合だと201501060704、201501060714、201501060718のレコードを抽出したいのです。 いい抽出条件はあるでしょうか? Excel側に1度全部出力してから選択するしかないでしょうか?

  • Accessのフォームとレポートについて

    Accessでフォームに学年のクラスをリストボックスで表示させ、選択してコマンドボタンを押すとそのクラスの生徒一覧がレポートとしてプレビュー表示される仕組みをつくりたいのですがどのような手順で作成していけばよいでしょうか? (表示させるための全生徒のデータテーブルは作成済みです)

  • アクセス2007 コマンドボタン ウイザード

    2007を使い始めたところですが、教えてください。単票フォーム(A)のデザインで、コマンドボタンを貼り付けて、別単票フォーム(B)を「フォームを開く」のをウィザードを利用して行おうとしています。その中で、「特定のレコードを表示する」を選択した場合、フォーム(B)のフィールドだけ表示されて、フォーム(A)のフィールドが表示されません。2002では、両方表示されて、「<ー>」ボタンを押せば、うまく目的のレコードの単票フォームが表示されていたのですが、どうなっているのでしょうか?・・・・・・フォーム(A)のフィールドが表示されません。・・・・・・よろしくおねがいします。

  • Access コンボボックスを使って抽出

    Access2000・Windows2000を使用しています。 レコードの抽出をしたいと思います。テーブルは1つ、フィールドには日付・商品名・業者名・単価・・・とあります。フォームで「商品名から抽出(コンボボックスから商品を1つ選ぶ)」または「業者名から抽出(コンボボックスから業者を1つ選ぶ)」(コンボボックスから商品を1つ選ぶ)出来るようにし、なおかつ今月のレコードのみ表示させたいのですが、まずそのテーブルを1つ作成した時点でつまづいてしまっています。 どなたかご教授お願いします。

  • ACCESS2000でクエリで抽出したレコードをフォームに表示するには

    A顧客テーブルで作成したフォームからコマンドボタン(電話番号検索)押下時に 電話番号入力画面が出て入力した電話番号とマッチした顧客レコードをフォームに 表示させたいのですが上手く出来ません。 現在進めている方法では何がダメなんでしょうか(以下は考え方) A顧客テーブルから作成したフォムに電話番号コマンドを作成してコマンドを 押すとクエリの実行をさせる。クエリはA顧客テーブルのフィールドを全て選択して抽出条件に[電話番号入力]としている。 (結果) ・フォームを開くと先に電話番号入力が出てくる、先にフォームが開かない。 ・電話番号検索コマンドボタンを押すと抽出条件に合ったレコードはデーターシートビューに表示される。 よろしくお願いします

専門家に質問してみよう