设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2892|回复: 6
打印 上一主题 下一主题

[表] 如何根据[分类]字段给[排名]字段赋值?

[复制链接]
跳转到指定楼层
1#
发表于 2012-1-6 08:15:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题。源代码如下:
  1. Private Sub CommandFind_Click()
  2. Dim rs As New ADODB.Recordset
  3. Dim strfind, strBiaoname As String
  4. Dim strTup, strTdown As Date

  5. '清除子窗体数据源
  6. Me.ChildShow.SourceObject = ""

  7. If Me.ComboBiao.Value <> "" Then
  8.     strTup = Me.TextTup.Value
  9.     strTdown = Me.TextTDown.Value
  10.     strBiaoname = DLookup("表名", "学生成绩_表名", "说明 = '" & Me.ComboBiao.Value & "'")

  11.     '批量删除临时表
  12.     Dim tbl As DAO.TableDef
  13.     For Each tbl In CurrentDb.TableDefs
  14.         If Left(tbl.Name, 4) = "临时表_" Then
  15.         DoCmd.DeleteObject acTable, tbl.Name
  16.         End If
  17.     Next
  18.    
  19.     '删除指定表
  20.     'strfind = "drop table 临时表_成绩查询"
  21.     'rs.Open strfind, CurrentProject.Connection, 1, 3

  22.     '建立临时表
  23.     strfind = "select 学生档案.班级,学生档案.姓名," & strBiaoname & ".语文," & strBiaoname & ".数学," & strBiaoname & ".英语 into 临时表_成绩查询 from 学生档案 INNER JOIN " & strBiaoname & " ON 学生档案.ID = " & strBiaoname & ".ID where 学生档案.入学时间 between # " & strTup & " # and #" & strTdown & "# "
  24.     rs.Open strfind, CurrentProject.Connection, 1, 3
  25.    
  26.     '建立新字段
  27.     strfind = "alter table 临时表_成绩查询 add 总分 smallint ,排名 smallint"
  28.     rs.Open strfind, CurrentProject.Connection, 1, 3

  29.     '总分字段赋值
  30.     strfind = "UPDATE 临时表_成绩查询 SET 总分 = 语文+数学+英语"
  31.     rs.Open strfind, CurrentProject.Connection, 1, 3

  32.     '排名字段赋值
  33.     '直接排名并更新:update 临时表_成绩查询 a set 排名=dcount('总分','临时表_成绩查询','总分>' & a.总分) +1
  34.     '根据班级字段排名并更新:?
  35.     strfind = "update 临时表_成绩查询 a set 排名=dcount('总分','临时表_成绩查询','总分>' & a.总分) +1"
  36.     rs.Open strfind, CurrentProject.Connection, 1, 3


  37.     '更新子窗体数据源
  38.     Me.ChildShow.SourceObject = "表.临时表_成绩查询"
  39.     '子窗体数据按指定字段排序
  40.     Me.ChildShow.Form.RecordSource = "select * from 临时表_成绩查询 order by 班级,排名"
  41.     '刷新子窗体显示
  42.     Me.ChildShow.Requery
  43.    
  44.     Set rs = Nothing
  45. Else
  46.     MsgBox "没有选择考试时间!"
  47. End If

  48. End Sub
复制代码
请教如何根据“班级”分类计算排名并更新呢?
我写的是:
  1. strfind = "update 临时表_成绩查询 a set 排名=dcount('总分','临时表_成绩查询','总分>' & a.总分) +1"
复制代码
但是只能无分类排名,要怎么修改?
源文打包如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-1-6 09:22:57 | 只看该作者
strfind = "update 临时表_成绩查询 a set 排名=dcount('总分','临时表_成绩查询','班级='"& 班级 &"' AND 总分>' & a.总分) +1"
3#
 楼主| 发表于 2012-1-9 09:13:44 | 只看该作者

修改后报错,请问H大这是怎么回事?{:soso_e132:}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
 楼主| 发表于 2012-1-9 09:42:42 | 只看该作者
H大,求助!
5#
 楼主| 发表于 2012-1-30 00:07:46 | 只看该作者
H大,求助!
6#
发表于 2012-1-30 15:30:47 | 只看该作者
    strfind = "update 临时表_成绩查询 a set 排名=dcount(" & """" & "总分" & """" & "," & """" & "临时表_成绩查询" & """" & "," & """" & "班级='" & """" & " & a.班级 & " & """" & "'  AND 总分>" & """" & " & a.总分) +1"
7#
发表于 2016-7-8 07:19:24 | 只看该作者
好好好好好好好好好好好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-1 19:55 , Processed in 0.107169 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表