已有23人关注
使用ODBC DSN连接Access 2003数据库
发表在VB答疑区 2012-01-03
是否精华
版块置顶:
  您好。我在设计教师测评系统时,遇到如下问题:在公共模块中,出现错误提示:实时错误'3709'连接无法用于执行此操作.在此上下文中它可能已被关闭或无效。rst.Open str, con, adOpenStatic, adLockOptimistic高亮显示。我已经建立DSN,并引用“Microsoft ActiveX Data Objects 2.8 Library”该模块全部代码如下:
'IsConnec标记数据库是否处于连接状态,con用于表示Connection对象的实例
Private IsConnect As Boolean
Private con As ADODB.Connection

'该子过程的功能是连接到指定的数据库
Public Sub Connect()
    '如果连接标记为真,表示已经连接到数据库,则直接退出
    If IsConnect = True Then
      Exit Sub
    End If
    
    
    '生成Connection对象的一个实例,并赋给变量con
    Set con = New ADODB.Connection
    '使用Connection对象的Open方法连接到指定的数据源
    con.Open "DSN=evaluation;Uid=admin;Pwd=1"
    If con.State <> adStateOpen Then
        '如果连接不成功,则显示提示信息并退出程序
        MsgBox "数据库连接失败!", vbOKOnly, "提示"
        End
    End If
    '设置连接标记,表明已经连接到数据库
    IsConnect = True
End Sub

'将查询到的结果集读入rst对象中,并通过Set connstr=rst返回查询结果集
Public Function connstr(ByVal str As String) As ADODB.Recordset
    '创建一个记录集对象并将其实例化
    Dim rst As ADODB.Recordset
    Set rst = New ADODB.Recordset
    rst.Open str, con, adOpenStatic, adLockOptimistic
    Set connstr = rst
End Function


'该子过程的功能是断开与数据库的连接
Public Sub Disconnect()
    '如果连接标记为假,表示已经断开连接,则直接退出
    If IsConnect = False Then
        Exit Sub
    End If
    '关闭并释放连接
    con.Close
    Set con = Nothing
    '设置连接标记,表明已经断开与数据库的连接
    IsConnect = False
End Sub
  请问代码本身有没有错误?有的话应该如何修改?否则,是不是漏掉了什么操作步骤呢?请拨冗回复,谢谢!
分享到:
精彩评论 1
C语言
学分:0 LV1
TA的每日心情
无聊
2021-11-12 22:00:04
2012-01-04
沙发
rst.Open str, con, adOpenStatic, adLockOptimistic
其中con的值应该由子程序Connect赋予,而子程序Connect没有执行,所以con没有值
可以在Load中执行Connect
也可以在rst.Open str, con, adOpenStatic, adLockOptimistic之前执行Connect
或者把子程序Connect改成子函数,让其返回连接,然后把rst.Open str, con, adOpenStatic, adLockOptimistic中的con改为Connect
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照