ぱそこんサービス(PC service)
 
客様の満足度を第一に考え、より安く! 無料のオープンソース自由に活用。     2

 
トップ > 雑談の部屋
サイト内検索画面へ移動します日誌の検索
 

日誌

日誌
12345
2017/11/08

Access勉強会 第5弾 雇用保険料の設定方法

Tweet ThisSend to Facebook | by:あさい


皆様:

 

こんにちは。

いつもお世話になっております。

 

今回もVBAの設定ですが、実に簡単な設定ですので安心して学んでください。

今年の5月に行った、雇用保険料が 1000分の3 に変更になった設定の変更方法です。

下記のVBAを見てください。

 

1

-------------------

' 雇用保険計算開始

   If雇用保険 > "" Then   ' 「雇用保険」欄に記入があれば計算

     控除前 = 給与小計 + 過不足 + 処遇改善助成金 ' 給与額

    If IsNull(控除前) Then '10/10/31() 12:52

      控除前 = 0

    End If

    If 雇用保険 <> "手入力" Then   ' 「雇用保険」欄に記入があれば計算

        雇用保険料 = Int(控除前 * 3 / 1000)  ' 1000分の3 平成294

      Else

        If IsNull(雇用保険料) Then

          雇用保険料 = 0

        End If

    End If

 

   ' 雇用保険対象外はゼロ

    Else

      雇用保険料 = 0

  End If

' 雇用保険計算終了

-------------------------------------

 

8行目の

        雇用保険料 = Int(控除前 * 3 / 1000)  ' 1000分の3 平成294

                 ↑ 

ここに書いてある式で “4”から“3” に変更しているだけです。

コメントもあるので分からない人はいないと思います。

式は、プログラム特有の記述式ですが、一般知識で理解できると思います。

 

問題は、この式が何処にあるのかです。

Accessに詳しい人にわかると思いますが、

それ以外の方々にも簡単に式を呼び出し、変更もできます。

 

ここで注意が一つ、給与計算は各事業所オリジナルです。

企画を例として説明いたします。

*注意:ここからは、重要な作業となりますから、「Musa_hom」の「Jiseki402.mdb」を

バックアップしておいて下さい。

 

まずは、Accessで介護システムを開いてください。

今回は、給与計算のVBAの変更になりますから、下記のように、

メインメニューから、「給与」を選んでください。

 

画面1

上記の「給与」を押すと画面が変わります。

その画面で、「給与管理」の「給与計算」を押して、開いてください。

下記、画面2のようになります。

画面2

青丸のあたりを、右クリックしてください。

 

画面3

上記のように、プルダウンメニューが現れます。

その中の緑の丸「デザインビュー」を選んで押してください。

編集画面1

上記のようになります。

これ以降は注意して間違わないように操作してください。

失敗しても、先ほど説明したように、バックアップを取ってあれば、安全です。

 

 編集画面2

上記のオレンジ丸を選んでください。「ID」です。

ID」が、上下に2つありますが、下の方です。

この画面で、オレンジ丸の「ID」を右クリックしてください。

編集画面3

上記のプルダウンメニューの一番下の緑丸の「プロパティ」を選んでください。

 

編集画面4

ここで注意することは、画面右側の「プロパティシート」の「選択の種類:コンボボックス」が「ID」担っていることです。

またタブが「イベント」に成っていることを確認してください。

タブの種類は「書式」「データ」「イベント」「その他」「すべて」である。

ほかのタブであれば、「イベント」を押して、変更してください。

 

編集画面5

上記画面の赤丸、「フォーカス取得時」「[イベント プロシージャ]」をクリックすると、

下記の画面の様に、右端の四角いボタンの中に…がある赤丸のボタンを押してください。

編集画面6

 

ボタンを押すと下記のようなMicrosoft Visual BasicApplication が開きます。

VBA画面

 

Jiseki401-Form_介護者給与情報Ki(コード)」の中身が、給与計算画面で実行されるVBA2です。106行目~124目に、式1があります。注意:106行目は事業所により違います。

添付ファイル:給与計算給与計算VBA.txt

全体ではかなり複雑なことを行っていますが、今回は式1(2ページ目)の雇用保険料1000分の3に変更部分だけです。

------------------------------------

        雇用保険料 = Int(控除前 * 3 / 1000)  ' 1000分の3 平成29年4月

                 ↑ 

上記の式で “4”から“3” に変更しているだけです。(前回が4と仮定)

 

今回は、如何でしたか? 雇用保険料の変更は簡単だと思います。

式のある場所を表示させるのがちょっと大変でしたか。

次回からは、各事業所で自力でできると思います。

皆さん、頑張ってください。

 

以上です


10:10 | 投票する | 投票数(0) | コメント(0) | トラックバック(0) | 総合学習
2017/11/07

Access勉強会 第4弾 重複をチェック式

Tweet ThisSend to Facebook | by:あさい
さて、前回のVBAはちょっと難しかったですか。
「重複チェック介護者原本2.xls」のVBAです。
「いえ、簡単でした。」と言われたら、今後も私は必要ないでしょうね。
 
前回の復習を兼ねて、勉強しましょう。
 
260行ほどのVBAが書かれていますが、ほとんどが表を見やすくする書式の設定です。
つまり、列の幅を設定したり、色を付けたり、不要な列を隠したりなどです。
 
前回のVBAは、Excelに詳しく、VBAに慣れている人でも、きっと全てを理解できる人は
少ないでしょうね。
私が編み出した、技術がありますから、ほかの人には理解しづらいでしょうね。
式を埋め込む方法を開発して、実行しています。
その方法は、複雑ですから覚える必要はありません。


しかし、重要なのは下記の式を埋め込んでいます。 M列の「Ck4.0」に埋め込み。
式2
--------------------------------------------------------------------------------
' 置き換える結果式  * 泊まりの次の日の重複をチェック
' 09/11/17(火) 11:42  ねっとdeネ! 浅井 泉
'=IF(OR(AND(G1=G2,E1=E2,L1=1),AND(G3=G2,E3=E2,L2=1)),"泊済",
' IF(OR(AND(G1=G2,E1=E2,J1>I2),AND(G3=G2,E3=E2,I3<J2)),"重複",
' IF(OR(AND(E1=E2,(G1+1)=G2,L1=1,J1>I2),
    AND(E2=E3,(G2+1)=G3,L2=1,I3<J2)),"重複",
' IF(AND(E1=E2,(G1+1)=G2,M1="泊済"),"要CK",""))))
--------------------------------------------------------------------------------
長くて複雑な式ですね。
この式については理解できる人を育ててください。
コメントに書いてあるように、重複をチェックする式です。
普通の文書で説明できるか、フロートチャートを書けますか?

*はじめに:プログラムの基本を説明します。
エクセル の IF 関数を紹介します。
IF 関数は条件により処理を分けます。

構文
IF(論理式, TRUE の処理, FALSE の処理)

名前説明
================================================================================
引数「論理式」| 条件を指定します。条件を満たすと「TRUE」、満たさないと| 「FALSE」になります。
引数「TRUE の処理」| 引数「論理式」が TRUE のときに返す値を指定します。
引数「FALSE の処理」| 省略できます。省略すると FALSE を返します。
| 引数「論理式」が FALSE のときに返す値を指定します。
================================================================================

いきなり説明しようとしても大変ですね、簡単な式を観てみましょう。
下記の式はわかりますか?  L列の「泊り」に埋め込み。
式1
-------------------------------------------------------------------------
'=IF(OR(I2>J2,I2=J2),1,0)             * 24時間は泊まり         2008/9/17
-------------------------------------------------------------------------
これは簡単ですよね。
開始時間が終了時間より大きいとき、または同じ時(24時間)は、泊まりとして”1”をセットする。それ以外は”0”とする。
Iが開始時間、Jが終了時間です。数字の2が同行(同じ行)です。
24時をまたいで活動した場合、終了時間は翌日の時間に成ります。
その状態を「泊り」として記録します。
分かりましたか。

では、泊まりの次の式2:重複をチェックする式を解決していきましょう。

前提として、Excelの列記号(ABC・・・)と項目名との関係を示します。
--------------------------------------------------------------------------
 A B         E        F        G    H    I        J        K        L
===========================================================================
性 事業所名称 介護者名 ふりがな 日付 曜日 開始時間 終了時間 実働時間 泊まり 
---------------------------------------------------------------------------
◎ 上記の状態でのIF文の解説をしましょう。

追加補足:プログラムの基本を説明
*OR 関数
構文
OR(論理式1, 論理式2)

名前説明
================================================================================
引数「論理式」| 条件を指定します。一つでも条件を満たすと「TRUE」、全て| 満たさないと「FALSE」になります。
================================================================================

*AND 関数
構文
AND(論理式1, 論理式2)

名前説明
================================================================================
引数「論理式」    | 条件を指定します。全ての条件を満たすと「TRUE」、1 つで| も満たさないと「FALSE」になります。
================================================================================

式2はM列の「Ck4.0」に書かれています。
式2
--------------------------------------------------------------------------------
'=IF(OR(AND(G1=G2,E1=E2,L1=1),AND(G3=G2,E3=E2,L2=1)),"泊済",
' IF(OR(AND(G1=G2,E1=E2,J1>I2),AND(G3=G2,E3=E2,I3<J2)),"重複",
' IF(OR(AND(E1=E2,(G1+1)=G2,L1=1,J1>I2),
    AND(E2=E3,(G2+1)=G3,L2=1,I3<J2)),"重複",
' IF(AND(E1=E2,(G1+1)=G2,M1="泊済"),"要CK",""))))
--------------------------------------------------------------------------------
*これらのIF関数を文書で説明:
-----------------------------------------------------------------------------
もし、  同行の日付と一行前の日付が同じ、同行の介護者と一行前の介護者が同じ、
     かつ、一行前の泊りが”1”
 または、同行の日付と一行後の日付が同じ、同行の介護者と一行後の介護者が同じ、
     かつ、同行の泊りが”1”
 の時は、”泊済”と表示する。

それ以外の時、
もし、  同行の日付と一行前の日付が同じ、同行の介護者と一行前の介護者が同じ、
     かつ、一行前の終了時間より同行の開始時間が小さい
 または、同行の日付と一行後の日付が同じ、同行の介護者と一行後の介護者が同じ、
     かつ、一行後の開始時間が同行の終了時間が小さい
 の時は、”重複”と表示する。

それ以外の時、
もし、  同行の介護者と一行前の介護者が同じ、同行の日付が一行前の日付の次の日、
     かつ、泊りが”1”、かつ、一行前の終了時間より同行の開始時間が小さい
 または、同行の介護者と一行後の介護者が同じ、一行後の日付が同行の日付が次の日、
     かつ、同行泊りが”1”、かつ、一行後の開始時間が同行の終了時間が小さい
 の時は、”重複”と表示する。

それ以外の時、
もし、 同行の介護者と一行前の介護者が同じ、同行の日付が一行前の日付の次の日、
     かつ、一行前のCkが”泊済”
 の時は、”要CK”と表示する。

それ以外は、””とする。
--------------------------------------------------------------------------------
以上です。分かりましたか。
私自身、頭の中がごちゃごちゃです。
文書で表しても理解するのは難しいですね。
大雑把に言ってしまえば、1.泊りの行の次に行があってはならない。
            2.時間帯が重複してはならない。
            3.泊りの状況での時間帯の重複のチェック。
            4.泊済の次の日を要チェック(注意)かな?

「重複チェック介護者原本2.xls」の結果を見れば納得できると思います。

皆さんの考え方で、重複条件が変わったら、書き換える必要になります。
理解でき、書き換えができる人を育ててください。
復習はここまでです。

以上です


13:08 | 投票する | 投票数(0) | コメント(0) | トラックバック(0) | 総合学習
2017/11/06

Access勉強会 第3弾

Tweet ThisSend to Facebook | by:あさい
皆様:

こんにちは

Access勉強会 第3弾になりますが、今回はVBAについてです。

ちょっと、本筋とは部外になりますが、Excelのマクロ(VBA)です。
添付の「重複チェック介護者01エクセルのマクロVBA.txt」を観てください。

じっくりと、勉強してください。

次回は、もっと簡単なVBAを説明します。

がんばってください。

*「重複チェック介護者01エクセルのマクロVBA.txt」

Sub 全実行()
'
' Macro1 Macro
' マクロ記録日 : 2006/8/18  ユーザー名 : iAza
'                2008/9/17
' 08/10/17(金) 12:03 Check2.2
' 09/11/17(火) 16:39 Ch3.1
' 11/07/14(木) 09:53 振替手当
'
'  余分な書式削除
    Columns("X:AA").Select
    Selection.Delete Shift:=xlToLeft
' 塗りつぶし解除
    Cells.Select
    Selection.Interior.ColorIndex = xlNone

' シート全体の書式(MS P明朝)
    Cells.Select
    With Selection.Font
        .Name = "MS P明朝"
    End With

'各項目の横幅
    Columns("A:A").Select
    Selection.ColumnWidth = 2
    Columns("B:B").Select
    Selection.ColumnWidth = 7.5
    Columns("E:E").Select
    Selection.ColumnWidth = 8
    Columns("F:F").Select
    Selection.ColumnWidth = 7
    Columns("G:G").Select
    Selection.ColumnWidth = 9
    Columns("H:H").Select
    Selection.ColumnWidth = 4.5
    Columns("I:K").Select
    Selection.ColumnWidth = 6
    Columns("L:L").Select
    Selection.ColumnWidth = 8
    Columns("M:N").Select
    Selection.ColumnWidth = 4
    Columns("O:W").Select
    Selection.ColumnWidth = 7
    Columns("R:R").Select
    Selection.ColumnWidth = 6

' ID;非表示
    Columns("C:D").Select
    Selection.EntireColumn.Hidden = True

' 縮小表示
    Columns("B:F").Select
    With Selection
        .ShrinkToFit = True
    End With
    Columns("H:L").Select
    With Selection
        .ShrinkToFit = True
    End With


' 日付の書式形式
    Columns("G:G").Select
    Selection.NumberFormatLocal = "m""月""d""日"";@"
'  項目名称入力
    Range("G1").Select
    ActiveCell.FormulaR1C1 = ""

' 時間の書式形式(分類)
    Columns("I:J").Select
    Selection.NumberFormatLocal = "h:mm;@"

' 時間の桁数
    Columns("K:K").Select
    Selection.NumberFormatLocal = "0.00_ "

' * 泊まり
'  ダミー用列作成:
    Columns("L:N").Select
    Selection.Insert Shift:=xlToRight
    Range("M2").Select
'  ダミー列に仮データ
    Columns("K:K").Select
    Selection.Copy
    Columns("M:M").Select
    ActiveSheet.Paste
'  ダミーを式で置き換え
    Range("M1").Select
    Selection.ClearContents
    Range("M2").Select
'=IF(OR(H2>I2,H2=I2),1,0)             * 24時間は泊まり         2008/9/17
    ActiveCell.CurrentRegion.FormulaR1C1 = "=IF(OR(RC[-4]>RC[-3],RC[-4]=RC[-3]),1,0)"
'  項目名称入力
    Range("M1").Select
    ActiveCell.FormulaR1C1 = "泊まり"
'  ダミー列削除
    Columns("L:L").Select
    Selection.Delete Shift:=xlToLeft

' * 整合チェック
'  ダミー用列作成:
    Columns("M:N").Select
    Selection.Insert Shift:=xlToRight
    Range("N2").Select
'  ダミー列に仮データ
    Columns("K:K").Select
    Selection.Copy
    Columns("N:N").Select
    ActiveSheet.Paste
'  ダミーを式で置き換え
    Range("N1").Select
    Selection.ClearContents
    Range("N2").Select


' 置き換える結果式  * 泊まりの次の日の重複をチェック
' 09/11/17(火) 11:42  ねっとdeネ! 浅井 泉
' =IF(OR(AND(G1=G2,E1=E2,L1=1),AND(G3=G2,E3=E2,L2=1)),"泊済",
'  IF(OR(AND(G1=G2,E1=E2,J1>I2),AND(G3=G2,E3=E2,I3<J2)),"重複",
'  IF(OR(AND(E1=E2,(G1=1)=G2,L1=1,J1>I2),AND(E2=E3,(G2+1)=G3,L2=1,I3<J2)),"重複",IF(AND(E1=E2,(G1+1)=G2,M1="泊済"),"要CK",""))))

' 置き換える式
    ActiveCell.CurrentRegion.FormulaR1C1 = "=IF(OR(AND(R[-1]C[-7]=RC[-7],R[-1]C[-9]=RC[-9],R[-1]C[-2]=1),AND(R[1]C[-7]=RC[-7],R[1]C[-9]=RC[-9],RC[-2]=1)),""泊済"",IF(OR(AND(R[-1]C[-7]=RC[-7],R[-1]C[-9]=RC[-9],R[-1]C[-4]>RC[-5]),AND(R[1]C[-7]=RC[-7],R[1]C[-9]=RC[-9],R[1]C[-5]<RC[-4])),""重複"",IF(OR(AND((R[-1]C[-7]+1)=RC[-7],R[-1]C[-9]=RC[-9],R[-1]C[-2]=1,R[-1]C[-4]>RC[-5]),AND((R[1]C[-7]-1)=RC[-7],R[1]C[-9]=RC[-9],RC[-2]=1,R[1]C[-5]<RC[-4])),""重複"",IF(AND((R[-1]C[-7]+1)=RC[-7],R[-1]C[-9]=RC[-9],R[-1]C=""泊済""),""要CK"",""""))))"

' 色つけ
    Range("A1:AA1").Select
    Selection.Interior.ColorIndex = 43

'  項目名称入力
    Range("N1").Select
    ActiveCell.FormulaR1C1 = "Ck4.0"
    Selection.Interior.ColorIndex = 35
    
'  ダミー列削除
    Columns("M:M").Select
    Selection.Delete Shift:=xlToLeft
    Columns("N:N").Select
    Selection.Delete Shift:=xlToLeft

' 泊まり;非表示
    Columns("L:L").Select
    Selection.EntireColumn.Hidden = True

' 縦幅変更
    Cells.Select
    Selection.RowHeight = 25
    
' 見出しに罫線(下線)
    Range("A1:Y1").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    
    
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    

' 一行おきに色を付ける
    Range("B3:Y3").Select
    Selection.Interior.ColorIndex = 20
    Range("B2:Y3").Select
    Selection.Copy
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    
' 金額欄カンマ付け
    Columns("Q:Y").Select
    Selection.NumberFormatLocal = "#,##0_ "

' 時間小数点表示
    Columns("T:T").Select
    Selection.NumberFormatLocal = "G/標準"


' チェック欄に罫線
    Columns("M:M").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlDash
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlDash
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With

    
' 自動幅変更
    Columns("Q:Y").EntireColumn.AutoFit

' 項目行を固定
    Range("A2").Select
    ActiveWindow.FreezePanes = True

' 印刷設定
    With ActiveSheet.PageSetup
        .PrintTitleRows = "$1:$1"
        .PrintTitleColumns = ""
    End With
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = "&A"
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = "Page &P"
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.196850393700787)
        .RightMargin = Application.InchesToPoints(0.196850393700787)
        .TopMargin = Application.InchesToPoints(0.393700787401575)
        .BottomMargin = Application.InchesToPoints(0.393700787401575)
        .HeaderMargin = Application.InchesToPoints(0.196850393700787)
        .FooterMargin = Application.InchesToPoints(0.196850393700787)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 95
        .PrintErrors = xlPrintErrorsDisplayed
    End With

' オートフィルタ
    Range("A1:Y1").Select
    Selection.AutoFilter
    
' マウスポイント移動
    Range("A2").Select

End Sub


10:06 | 投票する | 投票数(0) | コメント(0) | トラックバック(0) | 総合学習
2017/11/05

「重複チェック介護者01エクセル作成」の問題です

Tweet ThisSend to Facebook | by:あさい
皆様:

こんにちは、
Accessの勉強の、今回のポイントは、「重複チェック介護者01エクセル作成」の問題です。
ここで、その発端のメールを再度観てみましょう。
----------------------------
おはようございます。
お世話になります。

介護者側から見たダブリチェック表で、利用者「ピープルファースト」と(もしかしたら「はたらきば」も?)他の利用者の介護がダブった時、表示されていないようです。
介護者側からのものは全てのダブりが表示されるよう設定し直していただけますか?

よろしくお願いします。

自立生活企画/事務処理機構
-----------------------------------

ここのテーマは、「全てのダブりが表示されるよう設定し直して」です。

それでは、ここで質問です。
現在の「重複チェック介護者01エクセル作成」の抽出条件はどのようになっているのでしょうか?

これに、答えられる方がいらしゃいますか?
それが分からければ、どのよう改善するかを解決できないのは、誰にもわかります

簡単には、次のようになります。
・欠勤は除く
・利用者の性別が「他」のものを除く
など、その他にも数件の条件が有ります。
テーマを解決するには、「利用者の性別が「他」のものを除く」を削除で解決されそうです。しかし、それではだめのようでした。

そして、これからが本題です。
これらの条件を決めてのは誰でしょう。勿論私ではありません。私はその条件に合うようにプログラムしただけです。
勿論、皆さん方が決めたのです。
そして、問題2として、勤務状況を記録する「介護実績入力」での条件を決めたのも
皆さん方です。
例:1「勤怠」の種類
   延長、遅早、欠勤、利都、時短、会議、振替、変更、調整、当日、補償、旅行
  2「利用者」の性別「他」
  3「利用者」に手当を割り当てる
特に、「利用者」に手当を割り当てる;などは「介護実績」とは無縁です。給与計算で
行う項目です。

なにはともあれ、複雑な難題を解決していかなければならないのも、皆さん方です。

Accessの勉強会で、これらの複雑な難題を解決する方法を会得してください。

ちなみに、現状の「重複チェック介護者01エクセル作成」の抽出条件のSQL文を添付しておきます。

皆さん、頑張ってAccessの勉強会に参加してください。

*「重複チェック介護者01エクセル作成」の抽出条件のSQL文

' 実績表0除欠勤kai

SELECT *
FROM 実績表0
WHERE (((実績表0.勤怠)<>"欠勤" And (実績表0.勤怠)<>"当日") AND ((実績表0.欠勤)=0));



' 実績表0の重複介護者3

SELECT 介護者名簿.性別, 実績表0除欠勤kai.事業所名称, 実績表0除欠勤kai.ID2, 実績表0除欠勤kai.ID3, 実績表0除欠勤kai.介護者名, 実績表0除欠勤kai.[ふりがな], 実績表0除欠勤kai.日付, 実績表0除欠勤kai.曜日, 実績表0除欠勤kai.開始時間, 実績表0除欠勤kai.終了時間, 実績表0除欠勤kai.実働時間, 実績表0除欠勤kai.利用者名, 実績表0除欠勤kai.区分, 実績表0除欠勤kai.勤怠, 実績表0除欠勤kai.枠, 実績表0除欠勤kai.臨時, 実績表0除欠勤kai.欠勤, 実績表0除欠勤kai.時間, 実績表0除欠勤kai.延長, 実績表0除欠勤kai.遅刻・早退, 実績表0除欠勤kai.振替手当, 実績表0除欠勤kai.経費等, 実績表0除欠勤kai.総計

FROM 介護者名簿 INNER JOIN 実績表0除欠勤kai ON 介護者名簿.ID = 実績表0除欠勤kai.ID3

WHERE (((介護者名簿.性別)<>"他") AND ((実績表0除欠勤kai.勤怠)<>"利都") AND ((実績表0除欠勤kai.ID5)=[Forms]![メインメニュー]![作業事業所])) OR (((介護者名簿.性別)<>"他") AND ((実績表0除欠勤kai.欠勤)>=0) AND ((実績表0除欠勤kai.ID5)=[Forms]![メインメニュー]![作業事業所]))

ORDER BY 介護者名簿.性別, 実績表0除欠勤kai.[ふりがな], 実績表0除欠勤kai.日付, 実績表0除欠勤kai.開始時間;


18:03 | 投票する | 投票数(0) | コメント(0) | トラックバック(0) | 総合学習
2017/11/05

泊まりの次の日の重複をチェック

Tweet ThisSend to Facebook | by:あさい

さて、前回のVBAはちょっと難しかったですか。

「いえ、簡単でした。」と言われたら、今後も私は必要ないでしょうね。

 

前回の復習を兼ねて、勉強しましょう。

 

前回のVBAは、Excelに詳しく、VBAに慣れている人でも、きっと理解できる人は

少ないでしょうね。

私が編み出した、技術がありますから、ほかの人には理解しづらいでしょうね。

 

しかし、下記の式については理解できる人を育ててください。

----------------------

置き換える結果式  * 泊まりの次の日の重複をチェック

' 09/11/17() 11:42  ねっとdeネ! 浅井 泉

'=IF(OR(AND(G1=G2,E1=E2,L1=1),AND(G3=G2,E3=E2,L2=1)),"泊済",

' IF(OR(AND(G1=G2,E1=E2,J1>I2),AND(G3=G2,E3=E2,I3<J2)),"重複",

' IF(OR(AND(E1=E2,(G1=1)=G2,L1=1,J1>I2),AND(E2=E3,(G2+1)=G3,L2=1,I3<J2)),"重複",IF(AND(E1=E2,(G1+1)=G2,M1="泊済"),"CK",""))))

------------------------

コメントに書いてあるように、重複をチェックする式です。

普通の文書で説明できるか、フロートチャートを書けますか?

 

皆さんの考え方で、重複条件が変わったら、書き換えが必要になります。

理解できる人を育ててください。

 

復習はここまでです。


12:51 | 投票する | 投票数(0) | コメント(0) | トラックバック(0) | 総合学習
2017/10/10

アクセスを勉強したいのだけど その2

Tweet ThisSend to Facebook | by:あさい

*アクセスを勉強したいのだけど その2
・クエリについて学んでいきましょう。
先のテーブルの項目の内どれを選ぶかが、「クエリ」と考えてください。

例として。「名簿入力メニュー」の「介護者住所録」を出力してみてください。
表1
ID氏名所属郵便番号郡市区町、番地建物名電話番号電話番号2生年月日資格
108相蘇 道彦自立生活企画1730037板橋区小茂根4-26-8清和荘20103-5966-1542080-6559-85331965/10/18ヘルパー2級
251阿久津 大樹ウィル1890011東村山市恩多町3-3恩多3丁目アパート21号棟104042-398-0607080-5470-06091980/6/9介護福祉士
378安部 桂子PA足立1230851足立区梅田3-2-23-306090-6714-11691952/4/20ヘルパー1級
129新井 謙次郎はたらきば203-0054東久留米市中央町2-9-28ライトハイツ1010424-77-7103090-4206-11521957/1/27
469新井 里美ウィル1710052豊島区南長崎5-27-12アーバンヒルズ東長崎406号090-3439-88871956/7/13ヘルパー2級
356新井 淳子自立生活企画1880011西東京市田無町1-8-3-3020495-77-4190090-4538-52331981/11/18介護福祉士
473新井 祥子ウィル2030043東久留米市下里6-1-371990/9/28
214新井 洋子ウィル2030014東久留米市東本町3-16モナーク東久留米2010424-74-8703090-2649-29041959/7/20介護福祉士
607荒井 淑子ウィル2030012東久留米市浅間町3-20-23-101090-9304-00881979/10/22ヘルパー2級
619荒川 弘之IL&Pアシスト1940032町田市本町田2348-1ホ11-301
29荒川 真澄はたらきば3520035新座市栗原2-3-45栗原グリーンマンション2-202090-8105-99101967/4/28ヘルパー2級
490李 秀貞IL&Pアシスト1160014荒川区東日暮里6-5-16丸山マンション301ヘルパー2級
107飯田 栄生活援助為202-0015西東京市保谷町1-4-140424-65-5007090-6502-64151948/10/16ヘルパー2級
上記のようになると思います。

この表を選ぶクエリが、「介護者名簿(住所録用)」です。
表2

この表で重要なのは「フィールド」と「テーブル」です。
テーブル介護者名簿の氏名、所属、郵便番号、群市区・・・と順番に表示するよう設定しています。
表3

クエリ「介護者名簿(住所録用)」の右端は上記のように、「ふりがな」、「S1」フィールドが設定されています。
ここで、注意していただいことが3つ有ります、一つ目は「表示」にチェックが付いていないことです。
2つ目が、
「ふりがな」の「並べ替え」が「昇順」になっていること。
3つ目が、
「S1」の「抽出条件」に ”Is Not Null” と記されていることです。

ほとんど方が、用意に推測できると思います。
チェックが付いていない項目(フィールド)は表示されない。
あいうお順に並び替えている。
S1
(所属センター)がない物は表示されない。

結果として表1が表示されます。

どうでした、クエリの意味が理解できますいたか。

クエリは、表2、3のように表すことができますが、実際には下記のような、SQL文で
Accessは解釈されています。
「介護者名簿(住所録用)」のSQL文
SELECT 介護者名簿.ID, 介護者名簿.氏名, 介護者名簿.所属, 介護者名簿.郵便番号, 介護者名簿.郡市区, 介護者名簿.町、番地, 介護者名簿.建物名, 介護者名簿.電話番号, 介護者名簿.電話番号2, 介護者名簿.生年月日, 介護者名簿.資格
FROM 介護者名簿
WHERE (((介護者名簿.S1) Is Not Null))
ORDER BY 介護者名簿.[ふりがな];

実際のデータべ管理は、上記のSQL文で実行されています。
”ああそうかと” 理解だけして、忘れてください。

クエリについては以上です。


13:41 | 投票する | 投票数(0) | コメント(0) | トラックバック(0) | 総合学習
2016/10/18

介護システムに関して

Tweet ThisSend to Facebook | by:あさい
介護システム概要
http://pcfuwu.3zoku.com/p2/?page_id=45

介護システムに関して
オリジナルのシステムを作成し、下記のように、お客様の要望でカスタマイズします。

変更履歴
http://pcfuwu.3zoku.com/p2/?action=cabinet_action_main_download&block_id=43&room_id=1&cabinet_id=1&file_id=50&upload_id=385
16:53 | 投票する | 投票数(0) | コメント(0) | トラックバック(0) | 便利・お得情報
2016/08/23

NetCommons3 は8月末リリース

Tweet ThisSend to Facebook | by:あさい

今日は、
NetCommonsユーザカンファレンス2016  
に、行ってきました。

■日時: 2016年8月23日(火)10:00~18:00
■会場: 学術総合センタービル
■後援: 特定非営利活動法人コモンズネット

NetCommons3 は8月末リリース


16:11 | 投票する | 投票数(0) | コメント(0) | トラックバック(0) | 外部セミナーの報告
2016/04/21

アクセスを勉強したいのだけど その1

Tweet ThisSend to Facebook | by:あさい
これならわかる
マイクロソフトアクセス活用法

アクセスを勉強したいのだけど、どうやったら良いのかわからない。

*アクセスは、下記のうような5つの機能を持っています。
1.データを作成して格納する「テーブル」から
2.抽出、加工する「クエリ」
3.画面を作成する「フォーム」
4.いろいろな帳票を作成できる「レポート」
5.さらにプログラムを作成できる「マクロ」
6.Excelを活用したシステム
 「VBA(ビジュアルベーシックフォーアプリケーション」
 などがアクセスの中にあります。

データベースソフトの中で、一番多くの機能を持っています。

これから、これらの機能を、当社が開発した介護システムを例に説明していきます。

いきなり難しいい言葉が出てきます。
 「テーブル」、
 「クエリ」、
 「フォーム」、
 「レポート」、
 「マクロ」、
 「VBA」

しかし、心配しないでください。難しいものでは有りません。
これらを理解しないまでも、使いこなすか、変更できるようになるだけで良いのです。


*データベースって何? http://www.sk-access.com/database/db001_what.html 
難しく考えないください。
有るシステムを管理するのに必要な項目の集まり(ファイル)です。

・テーブルについて学んでいきましょう。
介護システムで言えば:
 実績表(介護実績表)、利用者名簿、介護者名簿、事業所 etc.です。
  実際には17ファイル有ります。

これらをファイル(テーブル)といいます。
皆さんが、普段入力している実績は、「実績表0」という名前のテーブル(ファイル)です。
「実績表0」テーブルには必要な項目が、下記のように14項目+α個設定されています。
 1.事業所名称、
 2.利用者名、
 3.介護者名、
 4.所属、
 5.日付、
 6.区分、
 7.勤怠、
 8.開始時間、 
 9.終了時間、
 10.枠、
 11.延長、 
 12.遅刻・早退、 
 13.臨時、
 14.欠勤、
  etc.
要するに記録し(知り)たい情報(項目)を管理します。
実際には32項目あります。

今回はここまでにしましょう。

何か質問が有れば遠慮なく質問してください。

11:47 | 投票する | 投票数(0) | コメント(0) | トラックバック(0) | 総合学習
12345