Office中国论坛/Access中国论坛

标题: 求助:如何重置子窗体中“排序”的数字? [打印本页]

作者: linjingdr    时间: 2014-11-5 21:07
标题: 求助:如何重置子窗体中“排序”的数字?
背景资料:窗体1中的子窗体数据已按“排序”的升序方式进行显示。因为有时会删除部分记录,所以“排序”的数字并不连续。
求助内容:
想在窗体上设置一个按键,点击后,可以按现有显示顺序,把排序的数字按自然数1、2、3...重新设置(数字连续不重复)。
请在上传的数据库上做个示例吧,阿门!



作者: 盗梦    时间: 2014-11-6 11:04
排序重置,这个简单啊!用ADO对逐条记录循环更新
作者: 盗梦    时间: 2014-11-6 11:11
  1. Private Sub Command4_Click()
  2.     Dim strSql As String
  3.     Dim rs As New ADODB.Recordset
  4.    
  5.     '按照排序字段打开记录集
  6.     strSql = "select 排序 from tabNAME order by 排序"
  7.     rs.Open strSql, CurrentProject.Connection, 1, 3
  8.         Do While Not rs.EOF
  9.             rs(0) = rs.AbsolutePosition '利用记录的位置,为排序更新
  10.             rs.Update
  11.             rs.MoveNext
  12.         Loop
  13.     rs.Close
  14.     Set rs = Nothing
  15.    
  16.     Me.[tabNAME 子窗体].Requery '刷新子窗体
  17. End Sub
复制代码

[attach]54949[/attach]


作者: todaynew    时间: 2014-11-7 17:21
本帖最后由 todaynew 于 2014-11-7 17:26 编辑

dim ssql as string
ssql="update 阁下的数据表名称 as a set a.排序=(select count(b.*) from 阁下的数据表名称 as b where b.排序<=a.排序)"
CurrentDb.Execute ssql
或:
dim ssql as string
ssql="update 阁下的数据表名称 set 排序=dcount('*','阁下的数据表名称','排序<=' & [排序])"
CurrentDb.Execute ssql



作者: linjingdr    时间: 2014-11-9 11:12
非常感谢!成功解决问题。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3