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


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

主题:窗口勾选数据录入

美女呀,离线,留言给我吧!
采菊东篱下
  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


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

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

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

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

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


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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()

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | 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")里一行数据都没输入。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/5 13:08:00 [显示全部帖子]

赋值给窗口的第一行开始啊
Dim dts As List(Of DataRow) = DataTables("批量勾选_Table1").Select("[勾选] = True")
For c As Integer = 0 To dts.count - 1
    Dim r As Row = Tables("月租收费_Table1").Rows(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 Tables("月租收费_Table1").Rows.Count < 10 Then
    Dim i As Integer = 10 - Tables("月租收费_Table1").Rows.Count
    Tables("月租收费_Table1").AddNew(i)
End If
e.Form.Close()
这样写同样不行。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/5 14:42:00 [显示全部帖子]

哦,明白了,这样写没问题了。
Dim dts As List(Of DataRow) = DataTables("批量勾选_Table1").Select("[勾选] = True")
If dts.count > Tables("月租收费_Table1").Rows.Count Then
    Tables("月租收费_Table1").AddNew(dts.count - Tables("月租收费_Table1").Rows.Count)
End If
If dts.count > 0 Then
    For c As Integer = 0 To dts.count - 1
        Dim r As Row = Tables("月租收费_Table1").Rows(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("备注") = dts(c)("备注")
        r.Save
    Next
End If
e.Form.Close()
[此贴子已经被作者于2021/5/5 14:46:09编辑过]

 回到顶部