| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1428 人关注过本帖
标题:求助!排序后重复的只显示一个值,为何?
取消只看楼主 加入收藏
leegar
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-5-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
求助!排序后重复的只显示一个值,为何?
求大神指点!
请看附件,为何没有重复值时有效,
wl.rar (16.78 KB)
有重复值时,只显示一个?
Option Explicit

Dim rs As New ADODB.Recordset '定义字段
Dim rs1 As New ADODB.Recordset '定义字段
Dim cnn As New ADODB.Connection   '定义数据连接



Private Sub Form_Load()
    Dim strCnn$, SQL As String

     
    strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\WL.mdb;Jet OLEDB:Database Password="
    cnn.Open strCnn                           '打开连接
    rs.Open "select * from  WL  ", cnn, adOpenDynamic, adLockBatchOptimistic


     
  End Sub

Private Sub Command1_Click()

Dim a As String
Dim arr(1 To 9) As Integer
Dim arr1(1 To 9) As Integer
Dim arrstr(1 To 9) As String
Dim arrstr1(1 To 9) As String
Dim I, j, T, p, q As Integer

For I = 1 To 9
    a = rs.Fields(I + 1)
    arr(I) = Val(a)
    q = I
    arr1(q) = Val(a)
    arrstr(q) = rs.Fields(q + 1).Name
Next I

For q = 1 To 9
Print "+++++++++++++++"; arr1(q) & "==========>" & arrstr(q)
Next q

For I = 1 To 8
    For j = 1 To 8
      '  If arr(j) > arr(j + 1) Then
      If arr(j) > arr(j + 1) Or arr(j) = arr(j + 1) Then
        T = arr(j + 1): arr(j + 1) = arr(j): arr(j) = T

        End If
'        arrstr(t) = arrstr(i)
'
    Next j
''MsgBox t & "==>" & j
Next I

 
For p = 9 To 1 Step -1
For q = 1 To 9
If arr(p) = arr1(q) Then arrstr1(p) = arrstr(q)

Next q
Print arr(p) & "==========>" & arrstr1(p)  ' & rs.Fields(i + 1).Name
Combo1.AddItem arrstr1(p)
'Print arrstr1(p), rs

List1.AddItem arrstr1(p)
Next p

Label1(0) = arr(9)
Label1(1) = arr(8)
Label1(2) = arr(7)
Label1(3) = arr(6)
Label1(4) = arr(5)
Label1(5) = arr(4)
Label1(6) = arr(3)
Label1(7) = arr(2)
Label1(8) = arr(1)

Text1(0) = arrstr1(9)
Text1(1) = arrstr1(8)
Text1(2) = arrstr1(7)
Text1(3) = arrstr1(6)
Text1(4) = arrstr1(5)
Text1(5) = arrstr1(4)
Text1(6) = arrstr1(3)
Text1(7) = arrstr1(2)
Text1(8) = arrstr1(1)


End Sub


运行后如下图

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2015-11-17 22:56编辑过]

2015-11-17 19:42
leegar
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-5-3
收藏
得分:0 
回复 2楼 wmf2014
不好意思,第一次,不知道,着急了
代码和运行后效果也补上了,请版主帮忙,谢谢

[此贴子已经被作者于2015-11-17 22:59编辑过]

2015-11-17 22:40
leegar
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-5-3
收藏
得分:0 
Option Explicit

Dim rs As New ADODB.Recordset '定义字段
Dim rs1 As New ADODB.Recordset '定义字段
Dim cnn As New ADODB.Connection   '定义数据连接



Private Sub Form_Load()
    Dim strCnn$, SQL As String

     
    strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\WL.mdb;Jet OLEDB:Database Password="
    cnn.Open strCnn                           '打开连接
    rs.Open "select * from  WL  ", cnn, adOpenDynamic, adLockBatchOptimistic


     
  End Sub

Private Sub Command1_Click()

Dim a As String
Dim arr(1 To 9) As Integer
Dim arr1(1 To 9) As Integer
Dim arrstr(1 To 9) As String
Dim arrstr1(1 To 9) As String
Dim I, j, T, p, q As Integer

For I = 1 To 9
    a = rs.Fields(I + 1)
    arr(I) = Val(a)
    q = I
    arr1(q) = Val(a)
    arrstr(q) = rs.Fields(q + 1).Name
Next I

For q = 1 To 9
Print "+++++++++++++++"; arr1(q) & "==========>" & arrstr(q)
Next q

For I = 1 To 8
    For j = 1 To 8
      '  If arr(j) > arr(j + 1) Then
      If arr(j) > arr(j + 1) Or arr(j) = arr(j + 1) Then
        T = arr(j + 1): arr(j + 1) = arr(j): arr(j) = T

        End If
'        arrstr(t) = arrstr(i)
'
    Next j
''MsgBox t & "==>" & j
Next I

 
For p = 9 To 1 Step -1
For q = 1 To 9
If arr(p) = arr1(q) Then arrstr1(p) = arrstr(q)

Next q
Print arr(p) & "==========>" & arrstr1(p)  ' & rs.Fields(i + 1).Name
Combo1.AddItem arrstr1(p)
'Print arrstr1(p), rs

List1.AddItem arrstr1(p)
Next p

Label1(0) = arr(9)
Label1(1) = arr(8)
Label1(2) = arr(7)
Label1(3) = arr(6)
Label1(4) = arr(5)
Label1(5) = arr(4)
Label1(6) = arr(3)
Label1(7) = arr(2)
Label1(8) = arr(1)

Text1(0) = arrstr1(9)
Text1(1) = arrstr1(8)
Text1(2) = arrstr1(7)
Text1(3) = arrstr1(6)
Text1(4) = arrstr1(5)
Text1(5) = arrstr1(4)
Text1(6) = arrstr1(3)
Text1(7) = arrstr1(2)
Text1(8) = arrstr1(1)


End Sub
2015-11-17 22:41
leegar
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-5-3
收藏
得分:0 
回复 5楼 wmf2014
验证码验证了一天,老是错,刚上来。

老师,原代码执行后,数值有三个18时,出现三个A3,两个56时出现两个A5,我要的是不管重复数值,只要排序,A1到A9都要显示
2015-11-18 16:37
leegar
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-5-3
收藏
得分:0 
回复 6楼 xiangyue0510
老师,你这只能竖排,横排不好用
2015-11-18 16:37
leegar
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-5-3
收藏
得分:0 
回复 9楼 wmf2014
还是不行
2015-11-18 20:56
快速回复:求助!排序后重复的只显示一个值,为何?
数据加载中...
 
   



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

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