Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请教老师for ....Next 代码。。(已解决)

1楼
菜鸟foxtable 发表于:2009/12/19 22:39:00
某按钮代码,红色部分到底应该放哪才不会乱新增行?意思是在判断完成后发现信息不全时不会新增行,只有窗口录入信息完全才会新增一行?

Tables("医嘱编辑_Table1").AddNew()

Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量"
Dim Values() as String
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
    if e.Form.Controls(Values(Index)).Value = nothing
        MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示")
        e.Form.Controls(Values(Index)).Select()
        Return
    else
        Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value
    end if
Next
[此贴子已经被作者于2009-12-20 0:13:24编辑过]
2楼
czy 发表于:2009/12/19 23:09:00
放在Else下面
3楼
菜鸟foxtable 发表于:2009/12/19 23:25:00
以下是引用czy在2009-12-19 23:09:00的发言:
放在Else下面

图片点击可在新窗口打开查看C版,您再看看清楚。假如前三个控件有内容,则会新增加3行咯。。。。

4楼
程兴刚 发表于:2009/12/19 23:56:00
放在next下面一行,放在循环外,每次为下次添加新行,数据不全不继续增加!否则,要添加N行,形成阶梯式数据录入。

如果不愿意提前添加行,可以这样,增加一行代码:

Tables("医嘱编辑_Table1").AddNew()
Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量"
Dim Values() as String
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
    if e.Form.Controls(Values(Index)).Value = nothing
        Tables("医嘱编辑_Table1").Current.Delete()
        MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示")
        e.Form.Controls(Values(Index)).Select()
        Return
    else
        Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value
    end if
Next
5楼
菜鸟foxtable 发表于:2009/12/20 0:06:00
以下是引用程兴刚在2009-12-19 23:56:00的发言:
放在next下面一行,放在循环外,每次为下次添加新行,数据不全不继续增加!否则,要添加N行,形成阶梯式数据录入。

如果不愿意提前添加行,可以这样,增加一行代码:

Tables("医嘱编辑_Table1").AddNew()
Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量"
Dim Values() as String
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
    if e.Form.Controls(Values(Index)).Value = nothing
        Tables("医嘱编辑_Table1").Current.Delete()
        MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示")
        e.Form.Controls(Values(Index)).Select()
        Return
    else
        Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value
    end if
Next

这样子也不行吧?不但把新增的行删除了,还会继续删除前面的行的。。。。

最大的问题是循环了。。。。有别的好办法吗?

[此贴子已经被作者于2009-12-20 0:08:27编辑过]
6楼
czy 发表于:2009/12/20 0:08:00
Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量"
Dim Values() as String
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
    if e.Form.Controls(Values(Index)).Value = nothing
        MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示")
        e.Form.Controls(Values(Index)).Select()
        Return
    end if
Next
Tables("医嘱编辑_Table1").AddNew()
For Index As Integer = 0 To Values.Length - 1
    Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value
Next
7楼
菜鸟foxtable 发表于:2009/12/20 0:10:00
图片点击可在新窗口打开查看试试看


谢谢C版,没想到这么简单。。。图片点击可在新窗口打开查看
[此贴子已经被作者于2009-12-20 0:12:25编辑过]
8楼
程兴刚 发表于:2009/12/20 0:31:00
哈哈,我居然也忘了循环问题!
9楼
程兴刚 发表于:2009/12/20 0:35:00
其实这样应该也可以:
Tables("医嘱编辑_Table1").AddNew()
Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量"
Dim Values() as String
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
    if e.Form.Controls(Values(Index)).Value = nothing
        Tables("医嘱编辑_Table1").Current.Delete()
        MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示")
        e.Form.Controls(Values(Index)).Select()
        Exit For
        Return
    else
        Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value
    end if
Next

原以为有Return就没有继续了,直接退出循环应该可以。
10楼
菜鸟foxtable 发表于:2009/12/20 9:08:00
以下是引用程兴刚在2009-12-20 0:35:00的发言:
其实这样应该也可以:
Tables("医嘱编辑_Table1").AddNew()
Dim Multi As String = "期效|开始时间|开嘱医生|组号|医嘱内容|用法|频率|单量|总量"
Dim Values() as String
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
    if e.Form.Controls(Values(Index)).Value = nothing
        Tables("医嘱编辑_Table1").Current.Delete()
        MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示")
        e.Form.Controls(Values(Index)).Select()
        Exit For
        Return
    else
        Tables("医嘱编辑_Table1").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value
    end if
Next

原以为有Return就没有继续了,直接退出循环应该可以。

图片点击可在新窗口打开查看又学到一招。

共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.