设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 实现手动排序的人个问题?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2009-1-19 08:52:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在主表的子窗体中按F5,便将前一笔记录的排序号+1,当前记录-1,从而达成上下位子调换的目的,可多次上下调换时排序号就全乱了

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-1-19 09:58:12 | 只看该作者
修改一下,测试OK

If KeyCode = vbKeyF5 Then
    DoCmd.SetWarnings False '关闭系统提示
    Dim Px As Integer
    Px = Me.排序
    DoCmd.RunSQL ("update B_CA_001BOM表 Set 排序 = 排序 +1 WHERE 所属产品ID=" & Me.所属产品ID & " and 排序=" & Px - 1)
    DoCmd.RunSQL ("update B_CA_001BOM表 Set 排序 = 排序 -1 WHERE bomid=" & Me.BOMID)
    DoCmd.SetWarnings True '打开系统提示
'    Me.Requery      '刷新
    Me.Recalc       '重算
elseif ......


楼主产生错误的原因在于第一个操作查询执行后, 其排序值已经改变, 第二个查询调用的就会是更改后的值而不是之前的值了

[ 本帖最后由 zyp 于 2009-1-19 09:59 编辑 ]

点击这里给我发消息

3#
 楼主| 发表于 2009-1-19 20:16:12 | 只看该作者
谢谢指点,可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-21 01:51 , Processed in 0.202132 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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