投稿時間:2004/12/20(Mon) 11:31 投稿者名:でぶや
Eメール:
URL :
タイトル:Update時にODBC接続エラー
いつも勉強させていただいております。
環境:WinXp VB6.0 Sp5 DB:AS400(IBM製 オフコン)
今、ExcelのデータをODBCで接続して、AS400に更新するプログラムを作成しています。 テストを行っているのですが、どうしてもエラーを解決することができません。 ご教授下さい。
'更新の関数(一部抜粋しています) Public Function plngExpMastSet() As Long Dim rstWork As Recordset Dim strSql As String Dim j As Long
On Error Resume Next plngExpMastSet = False strSql = "Select * From " & gstrLibrary1 & ".SKWTRN" strSql = strSql & " WHERE KWSQNO = " & NmMst.Newest strSql = strSql & " AND KWYYMM = " & glngDate Set rstWork = gDbsWork.OpenRecordset(strSql, dbOpenDynaset, dbExecDirect, dbOptimistic) If err.Number <> 0 Then GoTo Err_ExpMastSet On Error GoTo Err_ExpMastSet With rstWork For j = 0 To 2 NmMst.Newest = NmMst.Newest + 1 ' SEQNO更新 .AddNew ![KWSQNO] = CInt(NmMst.Newest) ' SEQNo ![KWYYMM] = CLng(glngDate) ' 処理月度 ![KWKGKB] = EXPENSKUBUN ' 小口経費区分 ![KWTHDT] = pExpens.TransactDate ' 取引年月日 ![KWITCD] = CLng(pExpens.ChargeCD) ' 入力担当者コード ![KWKMCD] = CLng(pExpens.SubjectCD) ' 科目コード '---------------途中省略 ![ZZFUNC] = ABILITY '作成機能/PGM ![ZZDATC] = Format(Now, "YYYYMMDD") '作成日 ![ZZTIMC] = Format(Time, "HHMMSS") '作成時刻 ![ZZUSRU] = gstrUserName '更新ユーザー ![FF] = ABILITY '更新機能/PGM ![ZZDATU] = Format(Now, "YYYYMMDD") '更新日 ![ZZTIMU] = Format(Time, "HHMMSS") '更新時刻 ![UPDATE_IDENT] = FIELDID 'フィールド更新/処理識別 ’=======ここでエラーが発生==== .Update '============================== '以下省略
デバックをすると、UpDateのところでエラーがでます。
エラーメッセージが err.description・・・ODBC接続エラーです。 dbEngine.Errors(0)・・・22005: [IBM][Client Access Express ODBC ドライバー (32 ビット)] カラム 16: CWB0111 - システム呼び出しで渡されたバッファーが小さ過ぎて戻りデータを入れられません。
というように、エラーがでます。 エラーのメッセージを考えると、セットしている値が大きいのかなと思い、入力データのチェック 関数を作りました。そのチェックは通っているので、桁数・属性は問題ないかと思います。
ODBCへの接続は別関数で、SELECTでデータを取得できています。 Updateができない状態です。
申し訳有りませんが、ご教授ください。m(_ _)m
|