| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1788 人关注过本帖
标题:vb新手 求各位帮忙看看代码
取消只看楼主 加入收藏
Mithril
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-5-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
vb新手 求各位帮忙看看代码
代码如下:
Private Sub Command2_Click(Index As Integer)
Dim i As Integer, r As Integer
Dim colList As New Collection
Dim strSQL As String
Dim conn As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim db As String
db = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\tuimag.mdb"
conn.Open db
On Error Resume Next 'Collection 添加重复的关键字(Key)会触发457错误,下面利用该错误避免重复数字

n = InputBox("输入n值")
If n > 45 Then Exit Sub

Randomize (Time)

Do Until n < 0
r = Int(Rnd * 45) + 1
colList.Add r, "a" & r '关键字只能是字符开头,所以加了个"a"
If Err.Number = 457 Then
Err.Clear '清空错误,本次获取数字失效
Else
n = n - 1 '没有错误,说明添加成功,这里要避免其他错误
End If
Loop
'构造查询字符串,将生成的数字组成列表
strSQL = "("
For i = 1 To colList.Count
strSQL = strSQL & colList(i) & ","
Next
Mid(strSQL, Len(strSQL), 1) = ")"
Text2.Text = strSQL
strSQL = "select * from stukq_math where StuNum in" & strSQL
'从数据库获取数据,只获取指定 stuNum 的记录,Conn 是 connection 对象,已经打开对应的数据库
RS.CursorLocation = adUseClient
RS.Open strSQL, conn, adOpenForwardOnly, adLockReadOnly, adCmdText
Set DataGrid1.DataSource = RS
DataGrid1.Refresh
End Sub
大致就是先产生n个1-45间的随机不重复随机整数,然后利用datagrid控件输出所有stu表中stuNum等于那些随机数的数据。
随机数产生是没有问题的,但datagrid始终显示不了数据。。。各位帮忙改下。感激不尽
搜索更多相关主题的帖子: 关键字 False 
2016-05-17 21:30
Mithril
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-5-17
收藏
得分:0 
回复 3楼 xiangyue0510
注释掉on error resume next 后提示标准表达式数据类型不匹配

后来发现原来在建表的时候stunum列数据类型设置错误了,改过来就能正常显示了。
非常感谢你们的解答。。
2016-05-18 11:48
快速回复:vb新手 求各位帮忙看看代码
数据加载中...
 
   



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

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