安全点検 – Linux Home Server http://www.now.mfnet.ne.jp/~ozachin/wordpress Long Road Linux Sat, 18 Jan 2020 07:15:48 +0000 ja hourly 1 https://wordpress.org/?v=5.9.3 学校安全点検システム3 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=335 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=335#respond Thu, 16 Jan 2020 01:01:45 +0000 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=335 read more]]> 最初に、肝心な区域別担当者の入力処理について説明します。
担当者の担当区域(T_kubun)とその区域について今期の登録状況(T_tenken)を比較し 新規登録か訂正かを判断する。

2つのクエリを用意する。

Q_1で各担当者の今期の登録内容が確認できる。

SELECT UserName.Login_name, UserName.K_name, T_kubun.校舎区分, T_kubun.担当区域, T_kubun.担当者, T_kubun.id, T_tenken.T_fubi, T_tenken.T_date
FROM (T_kubun INNER JOIN UserName ON T_kubun.T_username = UserName.Login_name) INNER JOIN T_tenken ON T_kubun.id = T_tenken.S_id
WHERE (((UserName.Login_name)=[forms]![F_1]![com1]) AND ((T_tenken.T_date)=[forms]![F_1]![td]));

Q_2で各担当者の担当区域数が確認できる。

SELECT UserName.Login_name, UserName.K_name, T_kubun.校舎区分, T_kubun.担当区域, T_kubun.担当者, T_kubun.id
FROM T_kubun INNER JOIN UserName ON T_kubun.T_username = UserName.Login_name
WHERE (((UserName.Login_name)=[forms]![F_1]![com1]));

Q_1は、
user_name(コンボボックス)と
実施時期(テキストボックス)を
パラメータとしたクエリです。
Q_2は
user_name(コンボボックス) を
パラメータとしたクエリです。

担当者がコンボボックスから自分名前を選択した時の大まかな流れは
if 新規登録なら
  全区域「不備なし」で登録する
else 訂正か終了するか
  if 訂正なら データを呼び出す
  else 終了する
  End If
End If

Private Sub com1_AfterUpdate()
On Error GoTo er
Dim rc, rc1 As Integer 'record count
Dim ret As Integer

rc = 0
rc1 = 0
rc = DCount("*", "Q_1")     '今期の登録の有無
rc1 = DCount("*", "Q_2")    '担当区域数

If rc = 0 Then

        '-------新規登録--------------
        Me.Requery
        
        Me.不備報告.Visible = True
        Me.担当区域.Visible = True
        Me.校舎区分.Visible = True
        Me.T_fb.Visible = True
        Me.lb1.Visible = True
        Me.line2.Visible = Tru
        Me.lb1.Visible = True
        Me.cmd_Close.Visible = True
        
        Me.T_rc = rc1 & "区域担当"
        
        Dim db As DAO.Database
        Dim rs1 As DAO.Recordset
        Dim rs2 As DAO.Recordset
          
        
        Set db = CurrentDb()
        Set rs1 = db.OpenRecordset("T_kubun")
        Set rs2 = db.OpenRecordset("T_tenken")
           
           rs1.MoveFirst
                Do Until rs1.EOF
                
                If rs1!T_username = Me.com1.Column(1) Then
                rs2.AddNew
                    rs2!T_date = Me.td
                    rs2!T_fubi = "不備なし"
                    rs2!S_id = rs1!id
                    rs2.Update
                Else
                
                End If
                
                rs1.MoveNext
                Loop
                
                Me.Requery
        
        
        rs1.Close: Set rs1 = Nothing
        rs2.Close: Set rs2 = Nothing
        
        db.Close: Set db = Nothing
        
        '---------登録処理ここまで-------
        
        Exit Sub

Else
        '-----訂正するか、終了するか
                ret = MsgBox("OKで続行(訂正する),キャンセルで終了", vbOKCancel, "登録済みです")
        '------ OKなら訂正する
            If ret = 1 Then
                Me.Requery
                Me.不備報告.Visible = True
                Me.担当区域.Visible = True
                Me.校舎区分.Visible = True
                Me.T_fb.Visible = True
                Me.lb1.Visible = True
                Me.line2.Visible = True
                Me.lb1.Visible = True
                Me.cmd_Close.Visible = True
                Me.T_rc = rc1 & "区域担当"
                
                Exit Sub
            
            '------- cancelなら終了
            
            ElseIf ret = 2 Then
            
                DoCmd.Close acForm, "F_1"
                Exit Sub
            
            End If

End If

End Sub

]]>
http://www.now.mfnet.ne.jp/~ozachin/wordpress/?feed=rss2&p=335 0
学校安全点検システム1 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=326 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=326#respond Mon, 13 Jan 2020 01:31:21 +0000 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=326 read more]]> 学校日誌用出欠管理システムの応用編として、
「安全点検システム」
を作成しました。

各学期1回以上実施しなければならないmustな業務です。
学校によってはこれ以上の頻度で実施している場合もあるでしょう。各区域別に担当者からの報告伝票を管理責任者がまとめ、必要な措置等を報告書にとして作成するわけですが、作業の流れは出欠管理と全く同じです。
「担当からの報告」→「転記」→「集計」

教員一人に1台のPCの環境を利用して省力化を図りましょう。 ここでも、煩雑な作業が増えると嫌がられます。
極力簡単な方法で楽になったと思ってもらうことが大切です。
安全点検は日頃から心がけなくてはなりませんので、定期的な点検の際にことさら多くの「不備」が発見されるわけではありません。従って、これまでの方法でも日付、担当者名、担当区域を記入し、「不備なし」に〇印をつけて終わりのパターンがほとんどです。
取りまとめする担当者が楽になるのは理解できますが、区域別の担当者としてこれより楽になるのでしょうか。 驚くほど簡単になりますので安心してください。

結論から言うと、
1.日付(実施月や実施日)・・・記入(入力)の必要ありません。
2.担当者名・・・記入(入力)の必要ありません。
3.担当区域名・・・複数あると大変ですが、記入(入力)の必要ありません。
4-1.担当区域すべて「不備なし」であれば、システムを起動して担当区域が表示されたら確認して終了ボタンを押して完了です。

これだけで、「不備なし」と報告されます。
起動の為のダブルクリック1回、終了ボタンのクリック1回、これだけです。

4-2.「不備あり」の区域は内容を入力して、終了ボタンを押して終了します。
ほとんどは4-1のパターンなので、これで嫌がる人はいないでしょう。
ただし、出欠管理システムと同様PCのログイン名が参照できることが前提です。できない場合は、教員名をリストから選択する操作が1つ加わりますが問題視されることはないと思います。

管理者用の機能を簡単に見ておくと
1.未入力のチェック
2.「不備」のあった区域の、対応措置等を入力。
 (区域担当者は後から参照できます。)
3.最終報告書の作成 などです。

次回以降、テーブル設計、画面構成やVBAのコードを確認していきます。

]]>
http://www.now.mfnet.ne.jp/~ozachin/wordpress/?feed=rss2&p=326 0