| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1071 人关注过本帖
标题:【求助】关于数据库的查询功能
只看楼主 加入收藏
超级隐士
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2008-5-4
收藏
 问题点数:0 回复次数:4 
【求助】关于数据库的查询功能
同一工程下我设置了两个窗体:一个是查询界面,一个是查询结果界面,公共模块里是有关执行SQL的函数,返回查询记录集,代码如下:

Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim sToken() As String
    On Error GoTo ExecuteSQL_ERROR
    Set cnn = New ADODB.Connection
    cnn.Open ConnectString
    ……(略)
    Set rst = New ADODB.Recordset
    rst.Open Trim$(SQL), cnn, adOpenDynamic, adLockOptimistic
    Set ExecuteSQL = rst       ‘ 函数返回查询的记录集
    MsgString = "查询到" & rst.RecordCount & "条记录。"
    ……(略)
End Function

Public Function ConnectString() As String  
    Dim str As String
    str = App.Path
    If Right$(str, 1) <> "\" Then
        str = str & "\"
    End If
    ConnectString = "……" & str & "***.mdb; ……"   ’返回连接字符串,ExecuteSQL函数调用
End Function

我的问题是:查询窗体中返回的结果记录集,如何保留到另外那个结果窗体中显示出来?最好不要用MDI的,否则我要重做了……
搜索更多相关主题的帖子: 数据库 SQL cnn ADODB rst 
2008-05-06 12:46
ak47my
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:229
专家分:0
注 册:2005-12-2
收藏
得分:0 
Public son As New ADODB.Connection
Public Rs As New ADODB.Recordset
Public StudentID As String



Public Function chaxun(ByVal str As String) As ADODB.Recordset
'连接字符串
son.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb;Persist Security Info=False"
son.Open
Rs.CursorLocation = adUseClient
Rs.Open str, son, adOpenKeyset, adLockOptimistic
Set chaxun = Rs
Set Rs = Nothing
Set son = Nothing
End Function


-----------------------

以上放在模块内


查询界面只负责传入查询参数
      比如按照学号查询  点击 查询
              例如:  
                        Private Sub Command1_Click()
                           StudentID = Text1.Text '把学号传给StudentID
                           form2.show '查询结果跳出
                        End Sub

然后在查询结果的From的load事件里加如
                   调用函数
                        Dim i as integer
                        Set Rs=Chaxun("select * from 表 where stId =" & StudentID)
                             //这里就可以把rs里的东西拿出来了
                             //比如
                             //Text1.text =rs.fields("字段名")
                        Rs.Close

[[it] 本帖最后由 ak47my 于 2008-5-7 00:08 编辑 [/it]]

提问:回答: 不提问怎么回答? 提问不清楚怎么回答?
2008-05-06 13:31
超级隐士
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2008-5-4
收藏
得分:0 
可变量StudentID只在查询窗口有效,在结果窗口无效啊。因为StudentID不是全局变量,但是全局变量不像静态变量那样能保留值,而静态变量又不能应用在多窗体……
2008-05-06 19:54
ak47my
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:229
专家分:0
注 册:2005-12-2
收藏
得分:0 
public公有,相当于全局变量
private私有,相当于局部变量
Dim通用,在本form内谁都可以用

我都写那么详细了你还看不懂?

提问:回答: 不提问怎么回答? 提问不清楚怎么回答?
2008-05-07 00:04
超级隐士
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2008-5-4
收藏
得分:0 
啊!不好意思,我没看清楚,现在明白了,谢谢!
2008-05-07 11:32
快速回复:【求助】关于数据库的查询功能
数据加载中...
 
   



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

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