我做了一个查询程序,用到了DATAGRID控件,可以正常查询,也可以多次查询,当然也可以查询出大数量的结果,总之查询没有任何问题了,可是可是:退出程序(Unload me)后,多数时候会提示Oleaut32.DLL文件错误。为什么?????????说明:退出程序之前,执行了关闭数据库,关闭正常;在VB6环境下运行正常,编译后单独运行就会有此问题。早期调试此程序时,没有发现有此错误,最近总是有,系统也重新恢复(GHOST)了,还是会出现,同时,我手动注册Oleaut32.DLL也成功了。郁闷ing是有什么操作不当?还是操作系统(Win XP Pro)的问题?
If SerchEND = True Then
Call OutputDATA
End If
If schRs_Open = True Then
SysState = "系统状态:查询结束,共查询到" & FindCount & "条记录。当前:第" & _ DataGrid1.Book & "条。"
End If
End Sub
Public Sub OutputDATA()
If FindCount = 0 Then
Exit Sub
End If
Set PnameIN.DataSource = schRS
Set PabIN.DataSource = schRS
Set PsexSel.DataSource = schRS
Set PbirthdayIN.DataSource = schRS
Set PkindSel.DataSource = schRS
Set PnumberIN.DataSource = schRS
Set PaddIN.DataSource = schRS
Set Ppic.DataSource = schRS
Set Pheadpic.DataSource = schRS
Set QMImage.DataSource = schRS
Set YWsel.DataSource = schRS
PnameIN.Text = schRS.Fields("Pname")
PabIN.Text = schRS.Fields("Pab")
PsexSel.Text = schRS.Fields("Psex")
PbirthdayIN.Text = schRS.Fields("Pbirthday")
PkindSel.Text = schRS.Fields("Pkind")
PnumberIN.Text = schRS.Fields("Pcardnumber")
PaddIN.Text = schRS.Fields("Padd")
PcallnumIN.Text = schRS.Fields("pcallnumber")
PregaddIN.Text = schRS.Fields("pregadd")
If schRS.Fields("Pother") <> "" Then
YWsel.Text = schRS.Fields("Pother")
Else
YWsel.Text = ""
End If
Dim A() As Byte
A = schRS.Fields("ppic")
Open App.Path & "\Tempfiles\temp1.jpg" For Binary As #1 ' 打开输出文件。
Put #1, 1, A
Ppic.Picture = LoadPicture(App.Path & "\Tempfiles\temp1.jpg")
Close #1 ' 关闭文件。
A = schRS.Fields("pheadpic")
Open App.Path & "\tempfiles\temp2.jpg" For Binary As #1 ' 打开输出文件。
Put #1, 1, A
Pheadpic.Picture = LoadPicture(App.Path & "\Tempfiles\temp2.jpg")
Close #1 ' 关闭文件。
A = schRS.Fields("pnamepic")
Open App.Path & "\tempfiles\temp3.jpg" For Binary As #1 ' 打开输出文件。
Put #1, 1, A
QMImage.Picture = LoadPicture(App.Path & "\Tempfiles\temp3.jpg")
Close #1 ' 关闭文件。
Me.Refresh
End Sub
你的文件还没关闭,就用LoadPicture,这不行呀!谁教你这样做的?
你应该先Close,再LoadPicture!
老大,我把“Close #1 ' 关闭文件。”提前一句,还是不行的嘛。怎么办?如果查询后直接退出的话,就不会出错,只要点击(双击)了DATAGRID的话,就一定出错。
在线等待ing
你的图片能显示吗?
不能这样从字段中取二进制数据,应使用字段的GetChunk方法。你是把所有的Close都提前了吗?这代码是你自己写的吗?
感觉上你代码,本来就不成立,为什么你说正常呢?你运行中达到过设计的目的吗?
Set PnameIN.DataSource = schRS
Set PabIN.DataSource = schRS
Set PsexSel.DataSource = schRS
Set PbirthdayIN.DataSource = schRS
Set PkindSel.DataSource = schRS
Set PnumberIN.DataSource = schRS
Set PaddIN.DataSource = schRS
Set Ppic.DataSource = schRS
Set Pheadpic.DataSource = schRS
Set QMImage.DataSource = schRS
Set YWsel.DataSource = schRS是不是语法问题?还是其他原因,因为跟踪不到错误信息。