- ベストアンサー
Access2000のDLookup関数を使用した受注単価のセットについて
- Access2000のモジュールにて受注テーブルに単価をセットする記述をしていますが、2件目以降の受注単価のセットがされない問題が発生しています。
- 受注テーブルの受注単価をセットするために、DLookup関数を使用しています。
- DLookup関数は、品目情報テーブルから品目に対応する単価を取得するものです。しかし、なぜか2件目以降の受注単価が正しくセットされない状況です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
うーん。分かりません。 次の手です。 出来上がったテーブル(KHASIJI_KJ)に更新クエリーを使いHMKIHONからGAICYHにSGAICHをセットしましょう。
その他の回答 (2)
- ryuu001
- ベストアンサー率61% (46/75)
BS_1!受注単価=DLookup("[単価]","品目情報","[品目] = '" & TB_1[受注品目] & "'") かな?
- ryuu001
- ベストアンサー率61% (46/75)
肝心の DLookup("[単価]","品目情報","[品目] = '" & TB_1[受注品目] & "'") をまわす所が書かれていませんので 何とも言えませんが、 do until bs_1.eof=true bs_1.edit DLookup("[単価]","品目情報","[品目] = '" & TB_1[受注品目] & "'") bs_1.update bs_1.movenext loop では駄目ですか? または、更新クエリーを使うかです。
補足
ryuu001さん、回答有難うございます。 詳細について、Access2000のモジュールの一部を書きます。 また、1年以上、この処理をやっていて突然DLookUp関数が おかしくなってしまいました。 以上、宜しくお願い致します。 *** モジュールの一部です *** 処理内容は、KHASIJIを読み、KHASIJI_KJに出力しています。 1.KHASIJIは、Accessテーブルです。 2.KHASIJI_KJは、SQL_Serverのテーブルです。 3.HMKIHONは、SQL_Serverのテーブルです。 Set WS_1 = DBEngine.WORKSPACES(0) Set BS_1 = WS_1.DATABASES(0) Set TB_1 = BS_1.OpenRecordset("KHASIJI", DB_OPEN_TABLE) TB_1.MoveFirst Do Until TB_1.EOF GoSub メイン処理 TB_1.MoveNext Loop (メイン処理の一部です。) SQL$ = "INSERT INTO KHASIJI_KJ ( KHDKBN, KHSKBN, KHSYMD, KHSJKN, KHTANT, KHFUGO, KHTCOD, KHSBAN, " SQL$ = SQL$ & " KHCBAN, KHNOKI, KHKOBN, KHYOKY, KHTRIR, KHNONB, KHHCOD, KHSURY, KHTNKB, KHTANK, " 省略 SQL$ = SQL$ & TB_1![PATKBN] & ", " If TB_1![PATKBN] = 2 Then SQL$ = SQL$ & DLookup("SGAICH", "HMKIHON", "HINCOD = '" & TB_1![KHHCOD] & "'") DLookUpが2件目以降実行されない。 ElseIf TB_1![PATKBN] = 3 Then SQL$ = SQL$ & DLookup("GAICYH", "HMKIHON", "HINCOD = '" & TB_1![KHHCOD] & "'") Else SQL$ = SQL$ & "0 " End If SQL$ = SQL$ & " ) " 'TEST Debug.Print "SQL1=>"; SQL$ Err.Clear cn.Execute SQL$ [1件目のSQL文です。最後の"1583"がDLooKUpにて求められた品目単価です。] SQL1=>INSERT INTO KHASIJI_KJ ( KHDKBN, KHSKBN, KHSYMD, KHSJKN, KHTANT, KHFUGO, KHTCOD, KHSBAN, KHCBAN, KHNOKI, KHKOBN, KHYOKY, KHTRIR, KHNONB, KHHCOD, KHSURY, KHTNKB, KHTANK, KHBUNK, KHHINM, KHFUKJ, KHDENP, KHNYMD, KHHYOM, KHPROD, KHLNK1, KHLNK2, KHSEKB, KHFIL1, KHHYMD, KHMKIK, KHNYUK, KHJIKM, KHJIKC, KHERRC, KHSYOK, KHNYAD, KHUPHC, KHUPKB, KHNAIJ, KHKACD, KHKBAN, KHFIL2, HACKBN, PATKBN, GAICYH ) VALUES ( 'SBA1', '1', '2003/05/08', '195323', '000000', '0', '899000003000', '005127829500', '0120823300', '2003/05/29', 'D0201FC89D00', '2324', '工作部 ', '南館 ', 'MAX-D6381A-1', 12, '1', 190300, '1', 'MOTOR BASE PA', '1', '', '2003/05/29', 'M2', '002324', 'S', 'S', '0', '', '2003/05/08', '*', '1', '000000000000', 'M2', '', '9', '1', '', '', '', '', '', '', 1, 2, 1583 ) [2件目のSQL文です。DLooKUpにて最後の品目単価が求められず、SQL分の実行がエラーとなっています。1件目と同じ品目なのになぜ求められないのか不明です。] SQL1=>INSERT INTO KHASIJI_KJ ( KHDKBN, KHSKBN, KHSYMD, KHSJKN, KHTANT, KHFUGO, KHTCOD, KHSBAN, KHCBAN, KHNOKI, KHKOBN, KHYOKY, KHTRIR, KHNONB, KHHCOD, KHSURY, KHTNKB, KHTANK, KHBUNK, KHHINM, KHFUKJ, KHDENP, KHNYMD, KHHYOM, KHPROD, KHLNK1, KHLNK2, KHSEKB, KHFIL1, KHHYMD, KHMKIK, KHNYUK, KHJIKM, KHJIKC, KHERRC, KHSYOK, KHNYAD, KHUPHC, KHUPKB, KHNAIJ, KHKACD, KHKBAN, KHFIL2, HACKBN, PATKBN, GAICYH ) VALUES ( 'SBA1', '1', '2003/05/08', '195323', '000000', '0', '899000003000', '005127829600', '0120823400', '2003/05/29', 'D0201FC89E00', '2324', '工作部 ', '南館 ', 'MAX-D6381A-1', 12, '1', 190300, '1', 'MOTOR BASE PA', '1', '', '2003/05/29', 'M2', '002324', 'S', 'S', '0', '', '2003/05/08', '*', '1', '000000000000', 'M2', '', '9', '1', '', '', '', '', '', '', 1, 2, )
お礼
ryuu001さん、お手数をお掛けしました。 上手くいきました。 今後とも宜しくお願い致します。