前几个月为公司写的《标准工时软件》出了点问题,在使用Crystal report时总是提示:
实时错误 '-2147217887 (80040e21)'
Multiple-step OLE DB operation generated errors.Check each OLE DB status value, if available. No work was done.
烦死我了,什么错误呢?从字面看好象哪一个值出问题了。但是找了一下,又没有问题。代码段如下:
txtSQL = "delete tmp_haur"
Set mrc = ExecuteSQL(txtSQL, msgtext)
txtSQL = "select * from manhaur where filname='" & Trim(Texts(0).Text) & "'" & " and docno='" & _
Trim(Texts(1)) & "'" & " and rev='" & Trim(Texts(2)) & "'" & " order by number"
Set mrc = ExecuteSQL(txtSQL, msgtext)
txtSQL = "select * from tmp_haur where filname='" & Trim(Texts(0).Text) & "'" & " and docno='" & _
Trim(Texts(1)) & "'" & " and rev='" & Trim(Texts(2)) & "'"
Set mrcc = ExecuteSQL(txtSQL, msgtext)
Do While Not mrc.EOF
mrcc.AddNew
For intCount = 0 To 11 Step 1
mrcc.Fields(intCount) = Trim(mrc.Fields(intCount))
Next intCount
mrcc.Update
mrc.MoveNext
Loop
mrc.Close
mrcc.Close
执行的结果是将一个表里面属合条件的记录copy到另一个表中去,这样的错误,参考了http://216.55.180.187/vbasic22.shtml,问专家的网站给了我提示,会不会我的另一个表的数据类型不匹配,进入Sql Server查看一下,果真一个是8.2,另一个字段的scale是2.0,怎么会匹配呢。补改完成后,再次运行,完全正常,OK?
太开心了,另外也发现一个微软的网站,用于google,也是很爽的。