Office中国论坛/Access中国论坛
标题:
[求助]窗体49个文本框的值,要求按大到小排序,取前8
[打印本页]
作者:
tz-chf
时间:
2007-1-7 06:12
标题:
[求助]窗体49个文本框的值,要求按大到小排序,取前8
想用数组,数组没有排序功能,集合好象也没有。
写代码又很复杂,正在想想想想
作者:
rjacky
时间:
2007-1-7 06:21
兄台最近在研究六合彩吗?只是将里面的值排列应该不难吧?
作者:
tz-chf
时间:
2007-1-7 07:02
想破头了。
输入下注后,要求49个码更新,并取前8用红色显示。控件是非绑定的,由于表结构的关系无法用查询处理。还有其它的一些限制。
作者:
andymark
时间:
2007-1-7 07:07
一个vb的快速排序的例子,希望对你有所帮助
[attach]22494[/attach]
作者:
rjacky
时间:
2007-1-7 07:18
搞定了[em07],只做了10个文本框,更改里面数字,在组合框里面就能看到最大的8个
[attach]22495[/attach]
作者:
rjacky
时间:
2007-1-7 07:23
10个文本框都是非绑定的,更改或输入新的数字,点击按钮后,组合框就会显示最新的前8个数字
作者:
tz-chf
时间:
2007-1-7 07:44
楼上的方法不适合我的需要。
输入是很快,这样窗体会抖。而且主机的数据来自好几台电脑。
版主的例子我没来得及看懂,睡觉时再研究一下冒泡法。
只差这一步就大功告成了。
show一下界面
[attach]22497[/attach]
[此贴子已经被作者于2007-1-6 23:47:38编辑过]
作者:
rjacky
时间:
2007-1-7 07:51
搞不懂什么叫窗体会抖,只是使用了以下对象集合或属性集合的遍历代码,获得49个文本框的值赋与给数组a(i)而已
只要获得了值,排序方法就多的是了
I = 0
For Each ctl In Me.Controls
Select Case ctl.ControlType
Case acTextBox
a(I) = ctl.Value
I = I + 1
End Select
Next
作者:
tz-chf
时间:
2007-1-7 20:30
然后呢?
加到记录集,记录集排序,刷新窗体。
或只操作数组
aa(1 to 49)
bb(1,1 to 8) '从小到大
’bb(0,m)里记录号码,bb(1,m)里记录下注值
for n=1 to 49
aa(n)=相应控件
next n
for n=1 to 49
if aa(n)>bb(1,1) then '比最小的大,处理
for m=1 to 8
冒泡法,排序下注值大小和相应的号码
next m
end if
next n
取得bb(0,1)就行了,大至思路是这样。
两种方法以后测试一下,哪种更快。
现在决定不取前8了,只算输赢,输的码改为红色,要更简单,也更有意义。
作者:
huangxiuwen
时间:
2008-1-14 13:58
顶你。顶你。顶你。顶你。顶你。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3