以文本方式查看主题

-  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=26452)

--  作者:mamasong
--  发布时间:2012/12/5 9:21:00
--  为什么退出窗口代码直接退出项目了呢?

大家帮忙给看看,我的这段代码有问题吗,是放在窗口中推出按钮的代码,为什么一点击这个按钮,直接退出项目了呢?

Dim Result As DialogResult

With Tables("票据")
    If .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改
        e.Form.Close
        Return
    Else
        Result = MessageBox.Show("该记录没有保存,是否放弃?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.no Then
            Return
        End If
        .Current.Reject()
    End If
    .AllowEdit=False
    e.Form.Close
End  With

 


--  作者:lin_hailun
--  发布时间:2012/12/5 9:27:00
--  
 代码看着没什么问题,做好做一个小例子发上来。

 或者看看是否这个问题 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=26234
[此贴子已经被作者于2012-12-5 9:27:48编辑过]

--  作者:mamasong
--  发布时间:2012/12/5 10:26:00
--  

我做了一个如图录入窗口,其中带*号为必输项,转让状态一列下拉列表选项有:转让,在库,贴现三种类型,如果状态为转让时,转让单位必须有内容,否则,无内容,


此主题相关图片如下:qq截图20121205101907.png
按此在新窗口浏览图片

保存按钮代码如下,为何总是到出票单位就报错呢?
 Dim drx As Row=Tables("票据").Current
    If drx("票据类型")="" Then
        MessageBox.Show("票据类型必须录入!")
        Return
    End If
    If drx("票据状态")="" Then
        MessageBox.Show("票据状态必须录入!")
        Return
    End If
   
    If drx("出票银行")="" Then
        MessageBox.Show("出票银行必须录入!")
        Return
    End If
    If drx("票据编号")="" Then
        MessageBox.Show("票据编号必须录入!")
        Return
    End If
    If drx("出票单位")="" Then
        MessageBox.Show("出票单位必须录入!")
        Return
    End If
    If drx("出票日期")="" Then
        MessageBox.Show("出票日期必须录入!")
        Return
    End If
    If drx("到期日期")="" Then
        MessageBox.Show("到期日期必须录入!")
        Return
    End If
    If drx("收款单位")="" Then
        MessageBox.Show("收款单位必须录入!")
        Return
    End If
    If drx("票面金额")="" Then
        MessageBox.Show("票面金额必须录入!")
        Return
    End If
    If drx("票据来源")="" Then
        MessageBox.Show("票据来源必须录入!")
        Return
    End If
    If drx("转让状态")="转让" And drx("转让单位")="" Then
        MessageBox.Show("转让单位必须录入!")
        Return
    End If
    If drx("转让状态")<>"转让" And drx("转让单位")>""  Then
        MessageBox.Show("票据来源必须录入!")
        Return
    End If
   
   
    With Tables("票据")
        If .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改
            MessageBox.Show("当前行未曾修改!")
            Return
        Else
            Tables("票据").Current.Save()
            MessageBox.Show("修改完毕!")
        End If
    End With


--  作者:lin_hailun
--  发布时间:2012/12/5 10:34:00
--  
 你是说代码只执行到 出票单位 这句代码,然后弹出对话框吗?

 如果是,注意查看你你这条数据是否为空……

 如果是报错,请告诉我们报什么错?

--  作者:mamasong
--  发布时间:2012/12/5 10:38:00
--  

是我新增一行,然后从上至下没输一个内容就点击保存按钮,都能正常提示,但是当输完出票单位,在点击保存就会出现如下问题窗口


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20121205103700.png
图片点击可在新窗口打开查看


--  作者:lin_hailun
--  发布时间:2012/12/5 10:47:00
--  
 应该是比较代码的问题。

 对于日期列 是不能用 ="" 去比较的。

 应该这样比较 drx("xxx") is nothing

--  作者:mamasong
--  发布时间:2012/12/5 11:07:00
--  

是啊,我采用了isnull()最终解决了这个问题,细节啊,看来还是不通啊,多谢你啊,再次表示感谢。。。