以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  代码问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=28081)

--  作者:mamasong
--  发布时间:2013/1/18 9:59:00
--  代码问题

With Tables("销售_开票")
    If .Rows.Count >= 0 Then
        If .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改
            .AddNew()
            CurrentTable.current.locked= False
            Return
        Else
            MessageBox.Show("该记录已经被修改,请先保存! ")
        End If
    Else
        .AddNew()
        CurrentTable.current.locked= False
    End If
End With

这段代码是写入到,录入窗口中  新增按钮中,原表为空表的时候,即行记录为零的时候,会报错,增加行无效

但是只要在表格中用系统菜单的增加行,增加一行之后,就可以用,表达式有什么问题吗,狐友们帮忙看看。。。


--  作者:mamasong
--  发布时间:2013/1/18 10:38:00
--  
图片点击可在新窗口打开查看
--  作者:lin_hailun
--  发布时间:2013/1/18 10:50:00
--  
当表格没有数据的时候,没有当前行current

With Tables("销售_开票")
    If .Rows.Count > 0 Then
        If .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改
            .AddNew()
            CurrentTable.current.locked= False
            Return
        Else
            MessageBox.Show("该记录已经被修改,请先保存! ")
        End If
    Else
        .AddNew()
        CurrentTable.current.locked= False
    End If
End With

--  作者:mamasong
--  发布时间:2013/1/18 11:02:00
--  
图片点击可在新窗口打开查看哎呀,多么低级的错误啊,真是,没有想到,count本身反应的就是行记录行数了,跟行位置是从零开始的混淆了,真是不应该,多谢林大侠。多谢多谢。。。