プロが教える店舗&オフィスのセキュリティ対策術

ACCESSでシステムを作成中です。

T_全生徒情報 というテーブルがレコードソースに設定されています。
レコード数は約300あります。
フォームで学生一覧が参照できていますが数が多いので、条件を指定して絞り込めるようにしたいと考えています。

同一フォーム内に コマンドで「1年生」「2年生」「3年生」と作成し、
「1回生」を押すと、300のレコードの内、テーブルでフィールドの「学年」が「1」のレコード全てを表示できるようにしたいのです。
同じフォーム内でのレコードの抽出が難しく四苦八苦しています。
参考書などで Filter 等いろいろを試してみましたがうまくいきません。
どなたか教えてください!!

A 回答 (2件)

>フィールドの「学年」が「1」のレコード全てを表示できるようにしたいのです。


抽出条件にしろフィルタにしろ何にも難しいところは無いように見えますが・・・
そのうまく行かない方法というのをここにアップしたら

この回答への補足

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

補足日時:2007/11/12 19:49
    • good
    • 0

フィルタの書き方が間違っています


フィールド名=条件
のように書いてください
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/13 07:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!