|
いつもお世話になります。
またわからなくなったので教えてください。
健康診断等を管理するデータベースを作成しています。
その中で衛生管理者等の意見を記入するため、コメントリストを作成し選択するようにしています。
T_コメントは
以下のようなテーブル構成で、1指導 2再検査 3治療 3つの区分にわかれ、それぞれにコメント番号を付してコメントリストを作っています。(各区分の項目は現在10〜15くらい)
T_コメント
コメント区分コード コメント区分 コメント番号 コメント
1 指導 1 ○○に注意しましょう。
1 指導 2 ○○を控えましょう
2 再検査 1 ○○の検査を受けましょう
2 再検査 2 ▲▲の検査を受けましょう
3 治療 1 ○○の治療が必要です。
3 治療 2 ▲の値について○○の治療を受けてください。
このT_コメントを元に各受検者のデータの意見欄に入力していくのですが、リストにない意見をその都度増やす必要があるため、F_コメントリストフォームのコマンドボタンをクリックすると、そのコメントの新しい番号を取得しそのレコードに飛ぶようにコメント追加ボタン(コマンド66)を配置し、下のようにコードを書いています。
Private Sub コマンド66_Click()
On Error GoTo Err_コマンド66_Click
Dim intX As Integer
Select Case Forms!F_コメント入力!フレーム33
Case 1
DoCmd.GoToRecord , , acNewRec
DoCmd.OpenTable "T_コメント", acNormal, acEdit
intX = DMax("コメント番号", "T_コメント", "コメント番号>0 and コメント区分コード=1 ")
コメント番号 = intX + 1
コメント区分コード = 1
コメント区分 = "指導"
DoCmd.Close acTable, "T_コメント"
Case 2
DoCmd.GoToRecord , , acNewRec
DoCmd.OpenTable "T_コメント", acNormal, acEdit
intX = DMax("コメント番号", "T_コメント", "コメント番号>0 and コメント区分コード=2 ")
コメント番号 = intX + 1
コメント区分コード = 2
コメント区分 = "再検査"
DoCmd.Close acTable, "T_コメント"
Case 3
DoCmd.GoToRecord , , acNewRec
DoCmd.OpenTable "T_コメント", acNormal, acEdit
intX = DMax("コメント番号", "T_コメント", "コメント番号>0 and コメント区分コード=3 ")
コメント番号 = intX + 1
コメント区分コード = 3
コメント区分 = "治療"
DoCmd.Close acTable, "T_コメント"
End Select
Exit_コマンド66_Click:
Exit Sub
Err_コマンド66_Click:
MsgBox Err.Description
Resume Exit_コマンド66_Click
End Sub
F_コメント入力!フレーム33はコメント区分を選択するオプショングループです。
フレーム33で1を選択すると、コメント区分が「指導」のF_コメントリストフォームが表示されます。
F_コメント入力!フレーム33で「指導」を選択している場合は、T_コメントテーブルの、指導区分のコメント番号のいちばん大きい値を取得し、1を加えた数値をコメント番号に入力し、ついでにコメント区分コードと区分も入力するという処理を行っているつもりなのですが、
実際にコマンドボタンをクリックすると、3の治療を選択しているのにもかかわらず、2の再検査の値を取得したりと、処理がうまくいきません。
解消方法をどなたか教えていただけたらと思います。
よろしくお願いします。
(Win /Accessともに2000)
|
|