カテゴリー別アーカイブ: クエリ

レコードを選択して集計する

Accessを使っているとテーブルにどんどんレコードが追加されていきます。

Accessに入力したデータで集計もしくは新たな資料を作る場合、何もしなければ
クエリやVBAの指示は全レコードに及び、ほんの一部の処理が全レコードに及びます。
特に重たい処理(DLookup関数やDsum関数)を使うときは如実に遅くなります。

そんなときは、別にテーブルを作り、そのテーブルに必要なレコードを移します。

今回は明細テーブルから必要なレコードとフィールドをT請求書データに移します。

移し方は単純にテーブルを開いてその中で日付等で抽出してコピペでもいいですが、
追加クエリが楽かなと思います。

このように追加クエリで必要なレコードを設定し、抽出条件で必要なレコードを選択できるようにします。

これで追加クエリを実行すると、集計に必要なレコードが別テーブルにコピーされ
これを元に集計をかけると、重たい処理もサクサク動きます。

追加するときは最初に一旦全レコードを削除することを忘れずにしてください。

============================================
この頃は夜明けが早いので、ランに畑にと朝の時間を活用しています。
もうすぐ夏至。この時期はもちろん、寒くなっても朝の時間を有効に
使いたいです。

今年も中玉トマトが鈴なりです♪

本日も最後までお読みいただきありがとうございます。

源泉徴収税額の計算方法が変わりました

給与計算をする上で、源泉徴収税額表が変わりました。

源泉徴収税額表(国税庁のHP)

大きな変更は、高額の給与の計算が細かくなったことでしょうか。
これをクエリで組むと、なかなかのクエリになりました。

このデータベースは大人数の給与計算を想定していないので、多少重くなっても
問題ないかなと思います。

今回は源泉所得税の計算を2つに分け、それを揃える形にしてみました。
最初に170万円未満の場合と、それ以上の場合に分け、最後にIIF関数で
正しい金額を選びます。

最初に170万円未満を計算します。
源泉: IIf([給料]>=950000 And [給料]<1700000,DLookUp(“源泉税額”,”源泉表”,”[以上]<=” & [給料] & “” & ” and ” & “[未満]>” & [給料] & “” & ” and ” & “[扶養人数]=” & [扶養] & “”)+([給料]-950000)*0.33693,IIf([給料]>=780000 And [給料]<950000,DLookUp(“源泉税額”,”源泉表”,”[以上]<=” & [給料] & “” & ” and ” & “[未満]>” & [給料] & “” & ” and ” & “[扶養人数]=” & [扶養] & “”)+([給料]-780000)*0.23483,IIf([給料]>=740000 And [給料]<780000,DLookUp(“源泉税額”,”源泉表”,”[以上]<=” & [給料] & “” & ” and ” & “[未満]>” & [給料] & “” & ” and ” & “[扶養人数]=” & [扶養] & “”)+([給料]-740000)*0.2042,Int(DLookUp(“源泉税額”,”源泉表”,”[以上]<=” & [給料] & “” & ” and ” & “[未満]>” & [給料] & “” & ” and ” & “[扶養人数]=” & [扶養] & “”)))))/1

次に170万円以上を計算
源泉高額: Int(IIf([給料]>=3500000,DLookUp(“源泉税額”,”源泉表”,”[以上]=3500000″ & ” and ” & “[扶養人数]=” & [扶養] & “”)+([給料]-3500000)*0.45945,IIf([給料]>=2250000 And [給料]<3500000,DLookUp(“源泉税額”,”源泉表”,”[以上]<=” & [給料] & “” & ” and ” & “[未満]>” & [給料] & “” & ” and ” & “[扶養人数]=” & [扶養] & “”)+([給料]-2250000)*0.4084,IIf([給料]>=2210000 And [給料]<2250000,DLookUp(“源泉税額”,”源泉表”,”[以上]<=” & [給料] & “” & ” and ” & “[未満]>” & [給料] & “” & ” and ” & “[扶養人数]=” & [扶養] & “”)+([給料]-2210000)*0.4084,IIf([給料]>=2170000 And [給料]<2210000,DLookUp(“源泉税額”,”源泉表”,”[以上]<=” & [給料] & “” & ” and ” & “[未満]>” & [給料] & “” & ” and ” & “[扶養人数]=” & [扶養] & “”)+([給料]-2170000)*0.4084,IIf([給料]>=1700000 And [給料]<2170000,DLookUp(“源泉税額”,”源泉表”,”[以上]<=” & [給料] & “” & ” and ” & “[未満]>” & [給料] & “” & ” and ” & “[扶養人数]=” & [扶養] & “”)+([給料]-1700000)*0.4084/1,0))))))
170万円未満の場合は0になるようにしてあります。

源泉徴収税額: IIf([源泉]<[源泉高額],[源泉高額],[源泉])
金額を比べ大きい方を選択します。

予想通り動作が重たいです。。。
違うやり方を考えないといけないかなと思わせる遅さです。

参考程度に触ってみてください。


本日のサンプルファイルです。
源泉徴収税額のテーブルも最新のものになっています。

====================================
今年だけで相続税の申告を4件受注し、2件申告済み、進行中が2件です。
あまり資産税は得意ではないのですが、関与先の相続はやらない訳には
行かないので、と思ってやっている内に、できるようになるもんですね。
そういった相談も多いので、相続税についてもある程度の経験は必要だと
感じます。


昨日ジャガイモを収穫。1キロ埋めて7キロ位にはなったかなと思います。
土寄せが甘く、少し緑がかってしまいました。来年は気を付けよう。

本日も最後までお読みいただきありがとうございます。

入金額から手数料を自動計算する②

今回は得意先テーブルに事前に手数料を登録しておくやり方です。
この方が一度決めてしまえば、ほぼ間違いない手数料のデータをつくることができる
と思います。

最初に得意先テーブルに3万円を超える場合と3万円以内の場合の手数料を入れる
フィールドを作ります。

続きを読む

入金伝票を作成する②~メインフォームのレコードの追加・更新

テーブルを整えたら、次にデータを追加クエリで追加します。

次のように追加クエリの設定をします。

得意先CDを関連付けて、該当する得意先CDが表示されたデータのみ、
入金伝票のメインフォームとなる、日付と得意先CDのレコードを追加します。
ただし同じデータが二度作られないように、作成済みに☑がついているレコード
以外のデータを作成するようにします。
続きを読む