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


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

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

帅哥哟,离线,有人找我吗?
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
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
ywz801
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


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

mosquito1003

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


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


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

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

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


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

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

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


加好友 发短信
等级:婴狐 帖子:16 积分:250 威望:0 精华:0 注册:2013/6/16 10:53:00
  发帖心情 Post By:2013/9/23 7:32:00 [显示全部帖子]

谢谢有点甜和程兴刚老师的指点,有点甜老师为空的判断代码精减了很多,但在内部账号为“是”的情况下,账号不能自动编号,记录中账号为空,请指点!

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


加好友 发短信
等级:婴狐 帖子:16 积分:250 威望:0 精华:0 注册:2013/6/16 10:53:00
  发帖心情 Post By:2013/9/24 22:17:00 [显示全部帖子]

感谢各位老师的指点,lsy老师的代码很精练,但总是先添加记录再判断是否真的添加,有点与实际要求不一致。有点甜老师为空的判断代码,可以先判断再看是否添加记录,只是自动编号没起作用,我后来将第二个循环判断中的DATATABLES换成TABLES就可以了,不知何故,另外,将窗口中的表设为副本的话,删除按键不能删除表中当前选定的行,请指点。程兴刚老师的代码有些小问题,在控件为空的情况下,点击确定会增加空记录。

 回到顶部