标题:[求助]关于VB中查询的问题,急~
取消只看楼主
PUPU
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-19
 问题点数:0 回复次数:5 
[求助]关于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
PUPU
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-19
得分:0 

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

2006-06-19 18:50
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
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
PUPU
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-19
得分:0 
嗯呐...确实我不懂..慢慢来学呐...
2006-06-19 19:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-73375-1-1.html




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

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