以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]数据全都输入了还跳出警告对话框,请大红袍老师帮忙看看代码哪里有问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=74608)

--  作者:twef
--  发布时间:2015/9/15 11:33:00
--  [求助]数据全都输入了还跳出警告对话框,请大红袍老师帮忙看看代码哪里有问题

数据全都输入了还跳出“数据录入不完整,请继续录入”警告对话框,请大红袍老师帮忙看看代码哪里有问题

With Tables("支付情况登记表")
    Dim nr As Row = Tables("支付情况登记表").Rows(Tables("支付情况登记表").Rows.Count -1)
    If nr("项目名称") = Nothing OrElse nr("发生日期") = Nothing OrElse nr("收款方") = Nothing OrElse nr("分类") = Nothing OrElse nr("已付金额") = Nothing
        Dim Result1 As DialogResult
        Result1 = MessageBox.Show("数据录入不完整,请继续录入!", "提示")
    Else
        Dim Result2 As DialogResult
        Result2 = MessageBox.Show("请再次确认数据是否无误,保存后将不能修改!", "提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Warning )
        If Result2 = DialogResult.ok Then
            .Current.Locked = True
            .Current.Save()
        End If
    End If
End With


--  作者:Hyphen
--  发布时间:2015/9/15 12:16:00
--  

代码本身没有问题。假如录入的时候使用Delete键清除数据后再重新录入,并且焦点没有离开输入框,会出现这种情况。做法是用代码使得焦点离开编辑的单元格

 

With Tables("支付情况登记表")
    Dim nr As Row = Tables("支付情况登记表").Rows(Tables("支付情况登记表").Rows.Count -1)
   
    .Position = .Position -1
    If nr("项目名称") = Nothing OrElse nr("发生日期") = Nothing OrElse nr("收款方") = Nothing OrElse nr("分类") = Nothing OrElse nr("已付金额") = Nothing
        Dim Result1 As DialogResult
        Result1 = MessageBox.Show("数据录入不完整,请继续录入!", "提示")
    Else
        Dim Result2 As DialogResult
        Result2 = MessageBox.Show("请再次确认数据是否无误,保存后将不能修改!", "提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Warning )
        If Result2 = DialogResult.ok Then
            nr.Locked = True
            nr.Save()
        End If
    End If
End With


--  作者:twef
--  发布时间:2015/9/15 12:44:00
--  
问题依然存在,新增行输入所以数据不会出现弹出对话框的问题,若修改数据后就会弹出来
--  作者:Hyphen
--  发布时间:2015/9/15 13:18:00
--  

做个例子上来测试


--  作者:twef
--  发布时间:2015/9/15 13:48:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table


--  作者:Hyphen
--  发布时间:2015/9/15 14:54:00
--  

 保存按钮事件

Dim nr As Row = Tables("支付情况登记表").Rows(Tables("支付情况登记表").Rows.Count -1)

改成

 

    Dim nr As Row = Tables("支付情况登记表").Current

 

不然无论修改那一行,都永远判断的是最后一行的值