• 締切済み

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 ですが、実行しても、選択している生徒の「学年」の部分が、オプショングループの選択した学年とリンクするように変わってしまいます。 したい動きをしてくれません・・・。涙