Foxtable(狐表)用户栏目专家坐堂 → [求助]控件输入内容控制


  共有4420人关注过本帖树形打印复制链接

主题:[求助]控件输入内容控制

帅哥哟,离线,有人找我吗?
ywz801
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:16 积分:250 威望:0 精华:0 注册:2013/6/16 10:53:00
[求助]控件输入内容控制  发帖心情 Post By: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

代码中提示不能用“<>”,请老师指点。
图片点击可在新窗口打开查看此主题相关图片如下:新增账户.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/9/18 8:11:00 [只看该作者]

有例子测试的话,马上就能得到错误提示,大致判断出问题所在。

不需要一条条看代码。

能快的方法,楼主却不用。


 回到顶部
帅哥哟,离线,有人找我吗?
ywz801
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:16 积分:250 威望:0 精华:0 注册:2013/6/16 10:53:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:350 积分:3142 威望:0 精华:0 注册:2012/12/6 18:05:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/9/21 9:21:00 [只看该作者]

上个例子,就那么难?也许看了例子,代码就那么简单的几行,而不是多到看不过来。

 回到顶部
帅哥哟,离线,有人找我吗?
ywz801
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:16 积分:250 威望:0 精华:0 注册:2013/6/16 10:53:00
  发帖心情 Post By:2013/9/21 23:48:00 [只看该作者]

mosquito1003

感谢mosquito1003,问题已解决,只是觉得本人代码太啰嗦,请高人精减。
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:账务管理系统.table


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/9/22 9:05:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:账务管理系统.table

[此贴子已经被作者于2013-9-22 9:36:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
ywz801
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:16 积分:250 威望:0 精华:0 注册:2013/6/16 10:53:00
  发帖心情 Post By:2013/9/22 19:11:00 [只看该作者]

谢谢lsy老师,代码精减了很多,但现在有一个问题,不管控件值是否为空,点击确认就会增加一条记录,不是非空才增加,另外,我想设汁账号只能输 数字字符,余额只能是带小数点的数字,如何解决,请指导!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:16 积分:250 威望:0 精华:0 注册:2013/6/16 10:53:00
  发帖心情 Post By:2013/9/22 22:04:00 [只看该作者]

我要的是控件值不为空的情况下才能增加记录,有空值则不增加,请老师指点!

 回到顶部
总数 21 1 2 3 下一页