Foxtable(狐表)用户栏目专家坐堂 → 窗口勾选数据录入


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

主题:窗口勾选数据录入

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
窗口勾选数据录入  发帖心情 Post By:2021/4/30 21:37:00 [只看该作者]

下面的代码已成功实现勾选窗口中的数据录入下表中,现在我想把红色部份代码改为替代单元格数据,因为表中已存在空行,只需把数据录入,不需要删除空行后再添加,且有时一些其他列已录入数据,下面的代码会把已录入数据删除,我把红色代码直接删除,就报错,请教应如何改?
DataTables("月租收费_Table1").DeleteFor("[车牌号码] is null ")
For Each dt As DataRow In DataTables("批量勾选_Table1").Select("[车牌号码] is not null")
    Dim r As DataRow = DataTables("月租收费_Table1").Find("[车牌号码] = '" & dt("车牌号码") & "'")
    If r Is Nothing Then
        If dt("勾选") = True Then
            r = DataTables("月租收费_Table1").addnew
            r("住址_序号") = dt("住址_序号")
            r("住址_巷") = dt("住址_巷")
            r("住址_号") = dt("住址_号")
            r("住址_房") = dt("住址_房")
            r("姓名") = dt("姓名")
            r("固定电话") = dt("固定电话")
            r("手机号码") = dt("手机号码")
            r("车牌号码") = dt("车牌号码")
            r("备注") = dt("备注")
        End If
    End If
Next
If DataTables("月租收费_Table1").DataRows.Count < 10 Then
    Dim i As Integer = 10 - DataTables("月租收费_Table1").DataRows.Count
    DataTables("月租收费_Table1").AddNew(i)
End If
e.Form.Close()

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2021/5/1 8:11:00 [只看该作者]

DataTables("月租收费_Table1").DeleteFor("[车牌号码] is null ")
For Each dt As DataRow In DataTables("批量勾选_Table1").Select("[车牌号码] is not null")
    If dt("勾选") = True Then
        Dim r As DataRow = DataTables("月租收费_Table1").Find("[车牌号码] = '" & dt("车牌号码") & "'")
        If r Is Nothing Then
            r = DataTables("月租收费_Table1").addnew
        End If
        r("住址_序号") = dt("住址_序号")
        r("住址_巷") = dt("住址_巷")
        r("住址_号") = dt("住址_号")
        r("住址_房") = dt("住址_房")
        r("姓名") = dt("姓名")
        r("固定电话") = dt("固定电话")
        r("手机号码") = dt("手机号码")
        r("车牌号码") = dt("车牌号码")
        r("备注") = dt("备注")
    End If
End If
Next
If DataTables("月租收费_Table1").DataRows.Count < 10 Then
    Dim i As Integer = 10 - DataTables("月租收费_Table1").DataRows.Count
    DataTables("月租收费_Table1").AddNew(i)
End If
e.Form.Close()

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/1 9:21:00 [只看该作者]

  你的代码还是添加行啊,打开窗口本身已是空表,我的要求是不添加行,直接赋值到对应的单元格,因为月租收费窗口本身写了数据录入先后顺序提示、锁定代码,不安提示顺序根本无法录入,怕录入人不安要求填写,导致一些列没录入数据,如果执行新添行录入数据,会让先录入数据与勾选数据录入后不在同一行,这也是我上面代码为什么先删除空行,再添加新行数据的原因。
[此贴子已经被作者于2021/5/5 9:58:28编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2021/5/1 10:00:00 [只看该作者]

2楼的代码是如果存在相同车牌号码的行,则不增加行,直接使用原来的行,否则增加一行

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/1 10:08:00 [只看该作者]

勾选的正是车牌号码,表里根本无数据,不存在这个条件。

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


[此贴子已经被作者于2021/5/1 10:09:18编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/1 10:31:00 [只看该作者]

我改代码的目的就是不要添加行,不要把我已录入的数据覆盖了!

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210501103003.png
图片点击可在新窗口打开查看
你的代码我试过了,一样把已录入数据变没了。


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/1 15:01:00 [只看该作者]

这样写不报错,但一个数据都没有显示
Dim dts As List(Of DataRow) = DataTables("批量勾选_Table1").Select("[勾选] = True")
For c As Integer = 0 To dts.count - 1
    Dim r As DataRow = DataTables("月租收费_Table1").DataRows(c)
    If r Is Nothing Then
        r("住址_序号") = dts(c)("住址_序号")
        r("住址_巷") = dts(c)("住址_巷")
        r("住址_号") = dts(c)("住址_号")
        r("住址_房") = dts(c)("住址_房")
        r("姓名") = dts(c)("姓名")
        r("固定电话") = dts(c)("固定电话")
        r("手机号码") = dts(c)("手机号码")
        r("车牌号码") = dts(c)("车牌号码")
        r("备注") = dts(c)("备注")
        r.Save
    End If
Next
If DataTables("月租收费_Table1").DataRows.Count < 10 Then
    Dim i As Integer = 10 - DataTables("月租收费_Table1").DataRows.Count
    DataTables("月租收费_Table1").AddNew(i)
End If
e.Form.Close()

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/2 10:51:00 [只看该作者]

我已用代码限定数据录入先后顺序,解决数据被覆盖问题,但上例给指定行、列赋值我还想很想知道如何实现,它是我绕不开的心结。
[此贴子已经被作者于2021/5/2 10:52:42编辑过]

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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/5 9:47:00 [只看该作者]

比如6楼的图,有3行有数据,7行没有数据,假设弹出窗口勾选了8行,那么应该给6楼月租收费单的哪些行赋值?

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/5 10:06:00 [只看该作者]

Dim dts As List(Of DataRow) = DataTables("批量勾选_Table1").Select("[勾选] = True")
For c As Integer = 0 To dts.count - 1
    Dim r As DataRow = DataTables("月租收费_Table1").DataRows(c)
    If r Is Nothing Then
        r(c)("住址_序号") = dts(c)("住址_序号")
        r(c)("住址_巷") = dts(c)("住址_巷")
        r(c)("住址_号") = dts(c)("住址_号")
        r(c)("住址_房") = dts(c)("住址_房")
        r(c)("姓名") = dts(c)("姓名")
        r(c)("固定电话") = dts(c)("固定电话")
        r(c)("手机号码") = dts(c)("手机号码")
        r(c)("车牌号码") = dts(c)("车牌号码")
        r(c)("备注") = dts(c)("备注")
        r(c).Save
    End If
Next
If DataTables("月租收费_Table1").DataRows.Count < 10 Then
    Dim i As Integer = 10 - DataTables("月租收费_Table1").DataRows.Count
    DataTables("月租收费_Table1").AddNew(i)
End If
e.Form.Close()
这样写我也试过了,DataTables("月租收费_Table1")里一行数据都没输入。

 回到顶部
总数 15 1 2 下一页