以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]控件输入内容控制 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=40401) |
||||
-- 作者:ywz801 -- 发布时间:2013/9/18 6:54:00 -- [求助]控件输入内容控制 我想在点击确定按钮时,如果其它所有控件内容不为空就新增一条记录,否则就不增加。而且账号控件只能输入数字字符,余额只能输入数字,如何解决,请指教。 Dim chk As WinForm.ComboBox chk = Forms("账户管理").Controls("是否内部账号") If chk.Value = "是" Then Dim kjmc() As String \'控件名称 Dim kjmcjh As String = "所属机构,机构编码,所属部门,部门编码,账户类别,账类编码,账户名称,余额方向,余额" \'控件名称集合 kjmc = kjmcjh.split(",") For i As Integer = 0 To kjmc.Length - 1 If e.Form.Controls(kjmc(i)).text = "" Then MessageBox.Show("内容不能为空") e.Form.Controls(kjmc(i)).Select() Exit For End If Next If e.Form.controls("余额").text <> "" Then Tables("账户管理表").AddNew() Dim dr As DataRow dr = Tables("账户管理表").Current.DataRow dr("是否内部账号") = True dr("所属机构") = e.Form.Controls("所属机构").text dr("机构编码") = e.Form.Controls("机构编码").text dr("所属部门") = e.Form.Controls("所属部门").text dr("部门编码") = e.Form.Controls("部门编码").text dr("账户类别") = e.Form.Controls("账户类别").text dr("账类编码") = e.Form.Controls("账类编码").text e.Form.Controls("账号").text = dr("账号") dr("账户名称") = e.Form.Controls("账户名称").text dr("余额方向") = e.Form.Controls("余额方向").text dr("余额") = e.Form.Controls("余额").text dr("开立日期") = e.Form.Controls("开立日期").text End If ElseIf chk.Value = "否" Dim kjmc() As String \'控件名称 Dim kjmcjh As String = "账户名称,账号,余额方向,余额" \'控件名称集合 kjmc = kjmcjh.split(",") For i As Integer = 0 To kjmc.Length - 1 If e.Form.Controls(kjmc(i)).text = "" Then MessageBox.Show("内容不能为空") e.Form.Controls(kjmc(i)).Select() Exit For End If Next If e.Form.controls("余额").text <> "" Then Tables("账户管理表").AddNew() Dim dr As DataRow dr("是否内部账号") = False dr("账号") = e.Form.Controls("账号").text dr("账户名称") = e.Form.Controls("账户名称").text dr("余额方向") = e.Form.Controls("余额方向").text dr("余额") = e.Form.Controls("余额").text dr("开立日期") = e.Form.Controls("开立日期").text End If End If |
||||
-- 作者:lsy -- 发布时间:2013/9/18 8:11:00 -- 有例子测试的话,马上就能得到错误提示,大致判断出问题所在。 不需要一条条看代码。 能快的方法,楼主却不用。 |
||||
-- 作者:ywz801 -- 发布时间:2013/9/21 8:53:00 -- 我将代码改为:总提示出错“字符串转换成LONG无效”,出错位置在红色位置,它们都是字符型,不知为何出错,如何改,请老师指教!! Dim chk As WinForm.ComboBox chk = Forms("账户管理").Controls("是否内部账号") If chk.Value = "是" Then Dim kjmc() As String \'控件名称 Dim kjmcjh As String = "所属机构,机构编码,所属部门,部门编码,账户类别,账类编码,账户名称,余额方向,余额" \'控件名称集合 kjmc = kjmcjh.split(",") For i As Integer = 0 To kjmc.Length - 1 If e.Form.Controls(kjmc(i)).text = "" Then MessageBox.Show("内容不能为空") e.Form.Controls(kjmc(i)).Select() Exit For End If Next If e.Form.controls("所属机构").text And e.Form.controls("机构编码").text And e.Form.controls("所属部门").text And e.Form.controls("部门编码").text And e.Form.controls("账户类别").text And e.Form.controls("账类编码").text And e.Form.controls("账户名称").text And e.Form.controls("余额方向").text And e.Form.controls("余额").text <> "" Then Tables("账户管理表").AddNew() Dim dr As DataRow dr = Tables("账户管理表").Current.DataRow dr("是否内部账号") = True dr("所属机构") = e.Form.Controls("所属机构").text dr("机构编码") = e.Form.Controls("机构编码").text dr("所属部门") = e.Form.Controls("所属部门").text dr("部门编码") = e.Form.Controls("部门编码").text dr("账户类别") = e.Form.Controls("账户类别").text dr("账类编码") = e.Form.Controls("账类编码").text e.Form.Controls("账号").text = dr("账号") dr("账户名称") = e.Form.Controls("账户名称").text dr("余额方向") = e.Form.Controls("余额方向").text dr("余额") = e.Form.Controls("余额").text dr("开立日期") = e.Form.Controls("开立日期").text End If ElseIf chk.Value = "否" Dim kjmc() As String \'控件名称 Dim kjmcjh As String = "账户名称,账号,余额方向,余额" \'控件名称集合 kjmc = kjmcjh.split(",") For i As Integer = 0 To kjmc.Length - 1 If e.Form.Controls(kjmc(i)).text = "" Then MessageBox.Show("内容不能为空") e.Form.Controls(kjmc(i)).Select() Exit For End If Next If e.Form.controls("账户名称").text And e.Form.controls("账号").text And e.Form.controls("余额方向").text And e.Form.controls("余额").text <> "" Then Tables("账户管理表").AddNew() Dim dr As DataRow dr = Tables("账户管理表").Current.DataRow dr("是否内部账号") = False dr("账户名称") = e.Form.Controls("账户名称").text dr("账号") = e.Form.Controls("账号").text dr("余额方向") = e.Form.Controls("余额方向").text dr("余额") = e.Form.Controls("余额").text dr("开立日期") = e.Form.Controls("开立日期").text End If End If |
||||
-- 作者:mosquito1003 -- 发布时间:2013/9/21 9:09:00 -- 修改如下: If e.Form.controls("所属机构").text <> "" And e.Form.controls("机构编码").text <> "" And e.Form.controls("所属部门").text <> "" And e.Form.controls("部门编码").text <> "" And e.Form.controls("账户类别").text <> "" And e.Form.controls("账类编码").text <> "" And e.Form.controls("账户名称").text <> "" And e.Form.controls("余额方向").text <> "" And e.Form.controls("余额").text <> "" Then 把每个都增加一个<>""或者是<> nothing 就行了.
|
||||
-- 作者:lsy -- 发布时间:2013/9/21 9:21:00 -- 上个例子,就那么难?也许看了例子,代码就那么简单的几行,而不是多到看不过来。 |
||||
-- 作者:ywz801 -- 发布时间:2013/9/21 23:48:00 -- mosquito1003感谢mosquito1003,问题已解决,只是觉得本人代码太啰嗦,请高人精减。
|
||||
-- 作者:lsy -- 发布时间:2013/9/22 9:05:00 --
[此贴子已经被作者于2013-9-22 9:36:40编辑过]
|
||||
-- 作者:ywz801 -- 发布时间:2013/9/22 19:11:00 -- 谢谢lsy老师,代码精减了很多,但现在有一个问题,不管控件值是否为空,点击确认就会增加一条记录,不是非空才增加,另外,我想设汁账号只能输 数字字符,余额只能是带小数点的数字,如何解决,请指导! |
||||
-- 作者:有点甜 -- 发布时间:2013/9/22 19:56:00 -- 如果不管控件值是否为空,都增加一条记录,就删除你为空的判断。 至于账号和余额的判断,参考下面代码 Dim zh As String = "AAA19908789" Dim ye As String = "1883" Dim temp As object If Integer.TryParse(zh, temp) = False Then msgbox("账号只能是数字") End If If Double.TryParse(ye, temp) = False OrElse ye.IndexOf(".") = -1 Then msgbox("余额只能是小数") End If |
||||
-- 作者:ywz801 -- 发布时间:2013/9/22 22:04:00 -- 我要的是控件值不为空的情况下才能增加记录,有空值则不增加,请老师指点! |