投稿日 | : 2002/09/03(Tue) 10:22 |
投稿者 | : さー |
Eメール | : |
URL | : |
タイトル | : VB SQLで アクセステーブルを操作する |
こんにちわ。VB始めたばかりの初心者です。
かなり煮詰まってしまったので分かる方よろしくお願いします。
(長くなってしまいましたが…)
現在、VBでアクセスのテーブルを操作しています。
給与計算において、休職者が出た時の日数計算をしています。
テーブル名が長いので略して書きます。
テーブルA 処理年月日や支給年月日などのテーブル
a1(数値型ex.200208)…給与年月 a2(日付型)…支給年月日
テーブルB 計算した日数を入れるテーブル
b1(数値型)・・社員コード b2(数値型)・・日数 b3(日付型)…支給年月日
テーブルC 休職情報が書かれたテーブル
c1(数値型)…社員コード c2(日付型ex.02/08/25)…休職開始日
とします。
現在処理中の時、同月に休職者がいた場合、その月の日数から休職開始日の日にち引いて日数を求め
ます。
テーブルBには、テーブルCと同じ人がいるとは限りません。
もし、同じコードがある場合はb2だけを更新し、
一致しない場合はテーブルBに追加して、b1、b2、b3 全ての項目を追加します。
現在処理中のものがあるかどうかの判断と、もしあった場合の年月(aa とします。)は求めてありま
す。
現在処理中の時、その月の一日をx、末日をwとし、
x=DateSerial(Year(aa),Mnth(aa),1)
w=DateSerial(Year(aa),Month(aa)+1,0) と求めました。
b1=c1が一致する時
Excute "update B inner join C on B.b1=C.c1 " _
& "set b2('& day(w) &' - day(C.c2))" _
& "where (C.c2 Between # '& format(x,'yy/mm/dd') &' #" _
& "and # '& format(w,'yy/mm/dd') '& #)"
b1=c1が一致しない時
Excute "insert into B (b1 b2 b3) " _
& "select C.c1,'& day(w) &' - day(C.c2),A.a2
& "from A,B inner join C on B.b1=C.c1 " _
& "where ((C.c2 between C.c2 Between # '& format(x,'yy/mm/dd') &' #&q
uot; _
& "and # '& format(w,'yy/mm/dd') '& #) " _
& "and (B.b1 is null))
と書いたのですが、演算子が足りませんと出てしまいました。
長々となってしまいましたが、分かる方お願いします。