| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 773 人关注过本帖
标题:[求助]关于VB中查询的问题,急~
只看楼主 加入收藏
PUPU
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-19
收藏
 问题点数:0 回复次数:9 
[求助]关于VB中查询的问题,急~
我正在做一个学生管理系统的作业,后天就要交。
有一个查询界面出现问题,望解答,谢...

这个界面上方是一用MSHFlexGrid控件画的框,希望查询的结果显示在里面
下方是三个Option Button和三个写查询条件的本文框

现在我的代码是这样的:

Private Sub Command1_Click(Index As Integer)

Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim SQLStr As String
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\学校管理系统\db1.mdb;Persist Security Info=False"
cnn.Open
If Text2(0).Text = "" Then
MsgBox "请填写一个查询条件!", vbOKOnly + vbInformation, "注意"
End If
If Option1.Value = True Then
SQLStr = "select * from 学生信息 where 学号='" & Text2(0).Text & "'"
ElseIf Option2.Value = True Then
SQLStr = "select * from 学生信息 where 姓名='" & Text2(1).Text & "'"
ElseIf Option3.Value = True Then
SQLStr = "select * from 学生信息 where 院系='" & Text2(2).Text & "'"
End If
rs.Open SQLStr, cnn, adOpenDynamic, adLockOptimistic, -1

MSFlexGrid1.Cols = rs.Fields.Count
MSFlexGrid1.Rows = 1

MSFlexGrid1.Row = 0
For i = 0 To rs.Fields.Count - 1
MSFlexGrid1.Col = i
MSFlexGrid1.Text = rs.Fields(i).Name
Next i
While Not rs.EOF
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
MSFlexGrid1.Row = MSFlexGrid1.Rows - 1
For i = 0 To rs.Fields.Count - 1
MSFlexGrid1.Col = i
MSFlexGrid1.Text = rs.Fields(i).Value
Next i
rs.MoveNext
Wend
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub


==============
运行的时候输入查询条件点击查询的时候出现

实时错误'424'
要求对象

调试后显示
MSFlexGrid1.Cols = rs.Fields.Count
这个有错误


不知道为什么啊...我VB基本没学过,不懂怎么改阿
或者有什么其他可用的代码可以达到我需要的效果
谢谢
搜索更多相关主题的帖子: Microsoft cnn Dim New ADODB 
2006-06-19 15:55
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
直接将rs赋给Mshflexgrid控件的Datasource属性就可以了.

我的msn: myfend@
2006-06-19 18:24
PUPU
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-19
收藏
得分:0 

谢谢大人的指导
但是我这VB小白还是不太明白,写成什么样,加在哪里啊?
我写rs=Mshflexgrid.Datasource运行时显示
编译错误
属性的使用无效

2006-06-19 18:50
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
倒...什么叫赋值语句..

我的msn: myfend@
2006-06-19 19:00
PUPU
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-19
收藏
得分:0 

寒...我确实什么都不知道啊...泪



用Set Mshflexgrid1.DataSource = rs
运行后出现的还是
实时错误'424'
要求对象
调试后还是说MSFlexGrid1.Cols = rs.Fields.Count这个不对

但是我查找的东西显示出来了


[此贴子已经被作者于2006-6-19 19:19:54编辑过]

2006-06-19 19:05
PUPU
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-19
收藏
得分:0 
明白了....现在搞定了.谢谢大人~!
2006-06-19 19:24
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 

我的msn: myfend@
2006-06-19 19:25
PUPU
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-19
收藏
得分:0 
大人不要狂汗啊.....

老师给的代码就是我一开始那个
我也不明白为什么我不能运行 而我有同学就可以
我现在是删掉了那一大段,就是
============
MSFlexGrid1.Cols = rs.Fields.Count
MSFlexGrid1.Rows = 1

MSFlexGrid1.Row = 0
For i = 0 To rs.Fields.Count - 1
MSFlexGrid1.Col = i
MSFlexGrid1.Text = rs.Fields(i).Name
Next i
While Not rs.EOF
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
MSFlexGrid1.Row = MSFlexGrid1.Rows - 1
For i = 0 To rs.Fields.Count - 1
MSFlexGrid1.Col = i
MSFlexGrid1.Text = rs.Fields(i).Value
Next i
rs.MoveNext
Wend
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
============
这些

然后补上大人说的赋值语句,运行就完全没有问题了...
Mshflexgrid这个控件第一次用...
VB也是第一次做...
大人体谅下呐
说来我删掉的这段是什么啊,为什么有它就有问题呢?
2006-06-19 19:37
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
不是有问题..只是你不懂得用而已..

我的msn: myfend@
2006-06-19 19:39
PUPU
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-19
收藏
得分:0 
嗯呐...确实我不懂..慢慢来学呐...
2006-06-19 19:50
快速回复:[求助]关于VB中查询的问题,急~
数据加载中...
 
   



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

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