| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3463 人关注过本帖
标题:对象关闭时不允许操作
取消只看楼主 加入收藏
lz_xiaohai
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2017-3-2
结帖率:50%
收藏
 问题点数:0 回复次数:2 
对象关闭时不允许操作
1、
Public Sub main()            '定义一个公共主函数,用于连接数据库
    cnnstr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;PWD=itxrgw;Initial Catalog=db_SPJXC;Data Source=."
    cnn.Open (cnnstr)
End Sub
2、
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
    Case "add"   '添加

    Case "del"    '删除

    Case "save"   '保存

        Call main
        cnn.Execute ("insert into 经手人表 values('" & Text1(0).Text & "','" & Text1(1).Text & "','" & Text1(2).Text & "','" & Text1(3).Text & "','" & Text1(4).Text & "','" & Text1(5).Text & "')")
        Set rs = ExecuteSQL("select * from 经手人表")
        Set DataGrid1.DataSource = rs
        DataGrid1.Refresh
        Set rs = Nothing
        cnn.Close
        rs.Close

    Case "cancel"  ' 取消
   
'    Case "find"    ' 查询

'    Case "close"   '关闭

    End Select
End Sub
3、如果我要程序随时执行cnn.execute  模块需要怎么设置
像执行查询一下,随时调用 ExecuteSQL(sql)。
Public Function ExecuteSQL(ByVal sql As String) As ADODB.Recordset

    Dim rs As New ADODB.Recordset
    Dim cnn As New ADODB.Connection

    cnn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;pwd=itxrgw;Initial Catalog=db_SPJXC"
    rs.Open Trim(sql), cnn, adOpenKeyset, adLockOptimistic
    Set ExecuteSQL = rs
End Function
搜索更多相关主题的帖子: 关闭 Case Text1 Text Set 
2017-12-26 09:22
lz_xiaohai
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2017-3-2
收藏
得分:0 
回复 楼主 lz_xiaohai
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
    Case "add"   '添加

    Case "del"    '删除

    Case "save"   '保存

        cnn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;pwd=itxrgw;Initial Catalog=db_SPJXC"
        cnn.Execute ("insert into 经手人表 values('" & Text1(0).Text & "','" & Text1(1).Text & "','" & Text1(2).Text & "','" & Text1(3).Text & "','" & Text1(4).Text & "','" & Text1(5).Text & "')")
        Set rs = ExecuteSQL("select * from 经手人表")
        Set DataGrid1.DataSource = rs
        DataGrid1.Refresh
        Set rs = Nothing
        cnn.Close
        rs.Close

    Case "cancel"  ' 取消
   
'    Case "find"    ' 查询

'    Case "close"   '关闭

    End Select
End Sub

这样的话是可以执行的,为什么调用模块里的连接就不行,直接把连接写到程序里就可以?
2017-12-26 10:17
lz_xiaohai
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2017-3-2
收藏
得分:0 
现在可以了。谢谢各位了。

[此贴子已经被作者于2017-12-27 14:15编辑过]

2017-12-26 12:32
快速回复:对象关闭时不允许操作
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059260 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved