疑惑不解,谁来拯救我???

tmran 2005-04-13 12:49:44
我做了一个查询程序,用到了DATAGRID控件,可以正常查询,也可以多次查询,当然也可以查询出大数量的结果,总之查询没有任何问题了,可是

可是:

退出程序(Unload me)后,多数时候会提示Oleaut32.DLL文件错误。为什么?????????

说明:退出程序之前,执行了关闭数据库,关闭正常;在VB6环境下运行正常,编译后单独运行就会有此问题。早期调试此程序时,没有发现有此错误,最近总是有,系统也重新恢复(GHOST)了,还是会出现,同时,我手动注册Oleaut32.DLL也成功了。郁闷ing

是有什么操作不当?还是操作系统(Win XP Pro)的问题?
...全文
75 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tmran 2005-04-13
  • 打赏
  • 举报
回复
To: homezj(小吉)

谢谢你的关心,分就给你吧。欢迎下次帮我解惑。
tmran 2005-04-13
  • 打赏
  • 举报
回复
To: homezj(小吉)

目的是查询数据,鼠标点击DATAGRID时,其他PictureBox的图片、TextBox的字符串等跟着变。功能倒是没有问题。

不过,我已经查出来问题原因了。下面这些是多余的,去掉就可以了,不过还不知道为什么(我只觉得和它下面的那些赋值语句重复,但不致到为什么会出错)
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

是不是语法问题?还是其他原因,因为跟踪不到错误信息。

homezj 2005-04-13
  • 打赏
  • 举报
回复
A是什么类型?声明过吗?
你的图片能显示吗?
不能这样从字段中取二进制数据,应使用字段的GetChunk方法。

你是把所有的Close都提前了吗?

这代码是你自己写的吗?
感觉上你代码,本来就不成立,为什么你说正常呢?你运行中达到过设计的目的吗?
tmran 2005-04-13
  • 打赏
  • 举报
回复
To: homezj(小吉)

老大,我把“Close #1 ' 关闭文件。”提前一句,还是不行的嘛。怎么办?

如果查询后直接退出的话,就不会出错,只要点击(双击)了DATAGRID的话,就一定出错。


在线等待ing
tmran 2005-04-13
  • 打赏
  • 举报
回复
试试看先
hspcyeling 2005-04-13
  • 打赏
  • 举报
回复
正解
homezj 2005-04-13
  • 打赏
  • 举报
回复
你这个代码有明显的严重问题:
你的文件还没关闭,就用LoadPicture,这不行呀!谁教你这样做的?
你应该先Close,再LoadPicture!
tmran 2005-04-13
  • 打赏
  • 举报
回复
期待高手或者有经验者给予指点!!!!!!!!!!!!!!
tmran 2005-04-13
  • 打赏
  • 举报
回复
经过测试发现:

如果只是查询就退出的话,不会出错,如果双击了DATAGRID的话,就一定会出错,

我使用了如下代码:(注:没有申明的变量都是Public方式申明的全局变量)

Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)

If SerchEND = True Then
Call OutputDATA
End If
If schRs_Open = True Then
SysState = "系统状态:查询结束,共查询到" & FindCount & "条记录。当前:第" & _ DataGrid1.Bookmark & "条。"
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

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧