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 展开
5个回答
展开全部
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
不明白,Source=.\dcode.dll???
1、Source=的是一个字符串,你可以用一个变量,使用Source=" & 变量。
2、*.dll是应用程序扩展,不是数据库!access数据库的扩展名是mdb
例如:
Dim strSTR As String
strSTR = App.Path & "\数据库名.mdb"
Mycon.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & strSQL
Mycon.Open Mystr '打开数据库
ssql = "select code,isuse from fundcode where pwd='" & passwd.Text & "'"
Myrt.Open ssql, Mycon, 3, 1
不明白,Source=.\dcode.dll???
1、Source=的是一个字符串,你可以用一个变量,使用Source=" & 变量。
2、*.dll是应用程序扩展,不是数据库!access数据库的扩展名是mdb
例如:
Dim strSTR As String
strSTR = App.Path & "\数据库名.mdb"
Mycon.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & strSQL
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
If Myrt("isuse") = "1" Then
Myrt.Close
Mycon.Close
MsgBox "该密码已使用,不能重复使用!", 16, "文件解密失败!"
End
End If
。。。。
Myrt.Close
Mycon.Close
上面已经关闭了,下面再次关闭就抱错了,逻辑问题!
Myrt.Close
Mycon.Close
MsgBox "该密码已使用,不能重复使用!", 16, "文件解密失败!"
End
End If
。。。。
Myrt.Close
Mycon.Close
上面已经关闭了,下面再次关闭就抱错了,逻辑问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库连接有问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库没打开,逐步调试,找出报错语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询