dポイントプレゼントキャンペーン実施中!

数学の問題をデータベース(アクセス)に登録しています。
フィールドは、問題、解答、目標時間、難易度(1~5)、ジャンルです。

これを例えば、以下の条件でランダムに問題を抽出したい。

・ジャンルが、「A」と「B」のみ
・難易度1~3から
・目標タイムの合計が10-15分になるように

で、抽出の仕方としては、

・問題だけの用紙(目標タイムが書いてある)
・解答だけの用紙

とプリントできるようにしたいのです。

このように、ランダムに作れると、確認テストをたくさん作れるのでとても便利です。

アクセスで無理なら、他のソフトなど紹介してくれるとうれしいです。


以上よろしくお願いします。

A 回答 (2件)

こんな感じですか。


(めんどいところは省略)

---
Public Sub TEST()
Dim cs As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strSQL As String
Dim int時間 As Integer '目標時間累積
Dim int問題数 as Integer '対象問題数
Dim int選択 As Integer
Dim i As Integer

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

strSQL = "SELECT [問題], [回答], [目標時間], [難易度], [ジャンル] " & _
" FROM T_問題 " & _
" WHERE ([目標時間]<=15) " & _
" And ([難易度] Between 1 And 3) " & _
" And ([ジャンル]='A' Or [ジャンル]='B')"
rs.Open strSQL, cn, adOpenStatic, adLockOptimistic

int時間 = 0 
int問題数 = rs.RecordCount 

loopnext:

rs.MoveFirst

'ランダムに数字を取得
int選択 = Int(Rnd(0) * int問題数) + 1
i = 0
Do While i <= int選択
rs.MoveNext
i = i + 1
Loop

'問題重複の場合の処理(省略)
int時間 = int時間 + rs!目標時間

'何回やっても目標時間が10から15に収まらなかったときの処理(省略)

If int時間 <= 15 Then
'対象レコードをテーブルに出力(省略)
If int時間 < 10 Then
GoTo loopnext '次の問題取得
End If
Else
GoTo loopnext '次の問題取得
End If



'テーブルを元に問題および解答のレポート作成(省略)

End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やはり、プログラムを組む必要がありそうですね。。。

わざわざありがとうございます。時間があればチャレンジしてみたいと思います。

お礼日時:2011/04/14 10:56

質問者がどれだけのアクセスの経験があるのか不明ですが、これは難しと思います。


プロに金を払ってやってもらう範囲だと思います。少し進むとCAIの関連になります。
ーー
質問に書いている
(1)問題の属性的(分野・難易度など)サマリ的な情報
外に
(2)そのサマリそれぞれのレコード(横1行)に対応する、実際の問題文
が考えられる。
(1)はアクセスは得意分野でしょう。
クエリやSQLの勉強をすれば、複数条件での抜き出しは、エクセル関数に比べたら格段に上です。
でもこの質問コーナーを10年ぐらい見ているが、アクセスは習得が難しいという意見が多い。
難なく学習できた人は声を挙げないのかもしてないが。
ーー
しかし(2)の問題文そのものの整理は、アクセスは得意とはいえないでしょう。卑近には数学数式もソフト(数式エディタ)の手を借りないと記述も難しいでしょう。
エクセルにある数式ソフト3.0をアクセスで使うとしても、疑問回答もGoogleでも見つからなかった。
アクセスには不定文字数の情報を扱うメモ型なども在りますが、扱いが難しいのでは。
ーー
それにアクセスは印刷(レポート)が自由にするのが難しい。
===
結局言いたいことは、同じようなことを考える先生は多いと思うので、出来合いの有料・無料ソフトが無いか探して、使うべきでしょう。
とりあえず「VECTOR」でWEB照会してみて。
教育界におれば、そういうニュースやお誘いはあるのではないですか。こんな質問コーナーに質問するのは、たまたま経験者がいれば、を狙うことで、賢明ではない。むしろ教育関連のカテの方がまだ相応しいのではないかな。
世上では、先生は雑務ほかで忙しいといわれている。そんな中でACCESSを実用まで勉強するのは、マニアックな人以外は難しいと思うが。
ACCESSを教えるスクールにでも行っても、その程度では途は遠いと実感するのではないかな。
アクセスは(1)の処理だけに限り、問題は紙の形で番号順に管理し、問題番号をアクセスの検索で知って、紙を探し、生徒数分コピーして使うなどが当面の目標かな。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やはり難しいですね。。。

私は個人的に家庭教師をしているだけで、教育界の知人は居ません。。。
確かに需要はありそうですね。

アクセスのプログラムを今から勉強するのは大変そうですので、違う方法、もしくはすでにあるかもしれないサービスを探してみたいと思います。

ありがとうございます。

お礼日時:2011/04/14 10:59

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