以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  空表点删除键错误提示  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=119166)

--  作者:hz5692
--  发布时间:2018/5/18 19:22:00
--  空表点删除键错误提示
If Tables("Table1").Current Is Nothing Then
    \'MessageBox.Show("没有选取删除数据行!", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)

表没有数据,还是会提示运行错误

--  作者:有点蓝
--  发布时间:2018/5/18 20:35:00
--  
提示什么错误?贴出完整代码,或者上传实例测试
--  作者:hz5692
--  发布时间:2018/5/18 20:36:00
--  

找到原因了
Dim mq As String = Tables("窗口1_Table1").Current("单据")
Dim pm As String = Tables("窗口1_Table1").Current("顺序")
Dim Res As DialogResult
If Tables("窗口1_Table1").Current Is Nothing Then
    MessageBox.Show("没有选取删除数据行!", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)
Else
    Res = MessageBox.Show("是否删除【顺序:"& pm &" 单据:"& mq &"】?", "提示", MessageBoxButtons.yesno, MessageBoxIcon.Question)
    If Res = DialogResult.yes Then
        Tables("窗口1_Table1").Current.Delete
        DataTables("窗口1_Table1").Save()
    End If
End If
会出运行错误


If Tables("窗口1_Table1").Current Is Nothing Then
    MessageBox.Show("没有选取删除数据行!", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)
Else
    Dim mq As String = Tables("窗口1_Table1").Current("单据")
    Dim pm As String = Tables("窗口1_Table1").Current("顺序")
    Dim Res As DialogResult
    Res = MessageBox.Show("是否删除【顺序:"& pm &" 单据:"& mq &"】?", "提示", MessageBoxButtons.yesno, MessageBoxIcon.Question)
    If Res = DialogResult.yes Then
        Tables("窗口1_Table1").Current.Delete
        DataTables("窗口1_Table1").Save()
    End If
End If
把定义变量放IF里面就不会出错

找到原因了
Dim mq As String = Tables("窗口1_Table1").Current("单据")
Dim pm As String = Tables("窗口1_Table1").Current("顺序")
Dim Res As DialogResult
If Tables("窗口1_Table1").Current Is Nothing Then
    MessageBox.Show("没有选取删除数据行!", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)
Else
    Res = MessageBox.Show("是否删除【顺序:"& pm &" 单据:"& mq &"】?", "提示", MessageBoxButtons.yesno, MessageBoxIcon.Question)
    If Res = DialogResult.yes Then
        Tables("窗口1_Table1").Current.Delete
        DataTables("窗口1_Table1").Save()
    End If
End If
表没有数据会出运行错误


If Tables("窗口1_Table1").Current Is Nothing Then
    MessageBox.Show("没有选取删除数据行!", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)
Else
    Dim mq As String = Tables("窗口1_Table1").Current("单据")
    Dim pm As String = Tables("窗口1_Table1").Current("顺序")
    Dim Res As DialogResult
    Res = MessageBox.Show("是否删除【顺序:"& pm &" 单据:"& mq &"】?", "提示", MessageBoxButtons.yesno, MessageBoxIcon.Question)
    If Res = DialogResult.yes Then
        Tables("窗口1_Table1").Current.Delete
        DataTables("窗口1_Table1").Save()
    End If
End If
把定义变量放IF里面就不会出错

--  作者:cd_tdh
--  发布时间:2018/5/19 6:20:00
--  
我觉得严谨的写法是先判断有没数据(是否是空表),是空表就不在执行后面的一切代码。