VB小程序,运行时报“3704”错误,提示“对象关闭时,不允许操作”怎么解决?
PrivateSubcheckpasswd()'验密DimMyconAsADODB.Connection'定义一个连接对象DimMyrtAsADODB.Recordset...
Private Sub checkpasswd() '验密
Dim Mycon As ADODB.Connection '定义一个连接对象
Dim Myrt As ADODB.Recordset '定义一个记录集对象
Dim Mystr As String
Dim ssql As String
Set Mycon = New ADODB.Connection '建立一个新的连接对象。
Set Myrt = New ADODB.Recordset '建立一个新的记录集对象。
Myrt.CursorLocation = adUseClient '定义记录集的游标类型
Mystr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=.\dcode.dll"
Mycon.Open Mystr '打开数据库
ssql = "select code,isuse from fundcode where pwd='" & passwd.Text & "'"
Myrt.Open ssql, Mycon, 3, 1
If Myrt.BOF And Myrt.EOF Then
MsgBox "密码错误!", 16, "文件解密失败!"
passwd.Text = ""
passwd.SetFocus
Else
If Myrt("isuse") = "1" Then
Myrt.Close
Mycon.Close
MsgBox "该密码已使用,不能重复使用!", 16, "文件解密失败!"
End
End If
Call writefile(filepath.Text, Myrt("code"))
Myrt.Close
Mycon.Close
Mycon.Open Mystr
ssql = "update fundcode set isuse='1' where pwd= '" & passwd.Text & "'"
Myrt.Open ssql, Mycon, 1, 1
Myrt.Close
Mycon.Close
MsgBox "解密成功!"
End If
End Sub 展开
Dim Mycon As ADODB.Connection '定义一个连接对象
Dim Myrt As ADODB.Recordset '定义一个记录集对象
Dim Mystr As String
Dim ssql As String
Set Mycon = New ADODB.Connection '建立一个新的连接对象。
Set Myrt = New ADODB.Recordset '建立一个新的记录集对象。
Myrt.CursorLocation = adUseClient '定义记录集的游标类型
Mystr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=.\dcode.dll"
Mycon.Open Mystr '打开数据库
ssql = "select code,isuse from fundcode where pwd='" & passwd.Text & "'"
Myrt.Open ssql, Mycon, 3, 1
If Myrt.BOF And Myrt.EOF Then
MsgBox "密码错误!", 16, "文件解密失败!"
passwd.Text = ""
passwd.SetFocus
Else
If Myrt("isuse") = "1" Then
Myrt.Close
Mycon.Close
MsgBox "该密码已使用,不能重复使用!", 16, "文件解密失败!"
End
End If
Call writefile(filepath.Text, Myrt("code"))
Myrt.Close
Mycon.Close
Mycon.Open Mystr
ssql = "update fundcode set isuse='1' where pwd= '" & passwd.Text & "'"
Myrt.Open ssql, Mycon, 1, 1
Myrt.Close
Mycon.Close
MsgBox "解密成功!"
End If
End Sub 展开
3个回答
展开全部
提示写的很明白了,“对象关闭时,不允许操作”,出错那条语句用到的对象必须是打开的
Data Source=.\dcode.dll这一句明显是错误的,DLL不可能用打开,里面的函数是要保密的
你要打开的是MDB数据库
Data Source=.\db1.mdb是有可能的
Data Source=.\dcode.dll这一句明显是错误的,DLL不可能用打开,里面的函数是要保密的
你要打开的是MDB数据库
Data Source=.\db1.mdb是有可能的
追问
不行啊,修改成你说的这样还是报同样的错误,我看懂错误了好像是数据库关闭了,不能进行操作下面的步骤吧,我也不太清楚
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上讲的DLL不能打开,不对
为保密起见,数据库文件可用任意符合规范的字符作扩展名,当然包括DLL
后面几句这样改下就行了
Mycon.Open Mystr
ssql = "select * from fundcode where pwd= '" & passwd.Text & "'"
Myrt.Open ssql, Mycon, 1, 3
Myrt("isuse") = "1"
Myrt.Update
Myrt.Close
Mycon.Close
MsgBox "解密成功!"
为保密起见,数据库文件可用任意符合规范的字符作扩展名,当然包括DLL
后面几句这样改下就行了
Mycon.Open Mystr
ssql = "select * from fundcode where pwd= '" & passwd.Text & "'"
Myrt.Open ssql, Mycon, 1, 3
Myrt("isuse") = "1"
Myrt.Update
Myrt.Close
Mycon.Close
MsgBox "解密成功!"
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
估计你的数据库连接串写的有问题 比如你的用户名密码写死了 但是在你同学的机器数据库密码和你不一样 自然就连不了 你把连接串发上来看看 如果没人帮你可以找我帮你看看 438493192
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询