Office中国论坛/Access中国论坛

标题: 实现手动排序的人个问题? [打印本页]

作者: 真主    时间: 2009-1-19 08:52
标题: 实现手动排序的人个问题?
在主表的子窗体中按F5,便将前一笔记录的排序号+1,当前记录-1,从而达成上下位子调换的目的,可多次上下调换时排序号就全乱了
作者: zyp    时间: 2009-1-19 09:58
修改一下,测试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 编辑 ]
作者: 真主    时间: 2009-1-19 20:16
谢谢指点,可以了




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