Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]表A多列多值跨表转单行

1楼
185723664 发表于:2024/9/2 10:10:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:12.foxdb



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

求助表A多列值变化时,自动拆分到表B
2楼
有点蓝 发表于:2024/9/2 10:13:00
http://www.foxtable.com/webhelp/topics/2965.htm
3楼
185723664 发表于:2024/9/2 10:42:00
蓝大师,上楼教程 垂直表和水平表的转换
单元格不是多值,1个单元格多值行拆分多行的教程有吗?
4楼
有点蓝 发表于:2024/9/2 10:47:00
一样的,多一个循环而已,在遍历所有行的时候,再把多值split拆分后遍历即可
5楼
y2287958 发表于:2024/9/2 12:27:00
DataTables("表B").DataRows.Clear
For Each 行 As DataRow In DataTables("表A").DataRows
    For Each 科目 As String In "事宜|环境|成本".Split("|")
        For Each 事宜 As String In 行.Lines(科目)
            Dim 新增行 As DataRow = DataTables("表B").AddNew
            新增行("编号") = 行("编号")
            新增行("国家") = 行("国家")
            新增行("科目") = 科目
            新增行("表A多列多值跨表转单行") = 事宜
        Next 
    Next 
Next 
6楼
185723664 发表于:2024/9/2 14:51:00
感谢,前辈高手 蓝大师
交学费,收徒吗?

前辈、蓝大师,增加一个判断,如果表b已经存在就不新增行,还有如果表a删除这行,表b也删除这行,代码怎么写?这个对我来说太难了
DataTables("表B").DataRows.Clear
For Each 行 As DataRow In DataTables("表A").DataRows
    For Each 科目 As String In "事宜|环境|成本".Split("|")
        For Each 事宜 As String In 行.Lines(科目)
            
            Dim dr As DataRow = DataTables("表B").Find("编号 = " & "'" & e.DataRow("编号") & "' and  国家 = " & "'" & e.DataRow("国家") & "' and  成本 = " & "'" & e.DataRow("成本") & "'")
            If dr IsNot Nothing' Then Then如果找到,则设置各列内容
                Dim 新增行 As DataRow = DataTables("表B").AddNew
                新增行("编号") = 行("编号")
                新增行("国家") = 行("国家")
                新增行("科目") = 科目
                新增行("表A多列多值跨表转单行") = 事宜              
            End If
        Next
        
    Next 
Next
[此贴子已经被作者于2024/9/2 15:13:01编辑过]
7楼
y2287958 发表于:2024/9/2 16:36:00
For Each 行 As DataRow In DataTables("表A").DataRows
    For Each 科目 As String In "事宜|环境|成本".Split("|")
        For Each 表A多列多值跨表转单行 As String In 行.Lines(科目)
            Dim 编号 As String = 行("编号")
            Dim 国家 As String = 行("国家")
            Dim 查找行 As DataRow = DataTables("表B").Find("编号 = '" & 编号 & "' and  国家 = '" & 国家 & "' and  科目 = '" & 
            科目 & "' and 表A多列多值跨表转单行 = '" & 表A多列多值跨表转单行 & "'")
            If 查找行 Is Nothing Then
                Dim 新增行 As DataRow = DataTables("表B").AddNew
                新增行("编号") = 行("编号")
                新增行("国家") = 行("国家")
                新增行("科目") = 科目
                新增行("表A多列多值跨表转单行") = 表A多列多值跨表转单行 
            End If
        Next
        
    Next 
Next
8楼
185723664 发表于:2024/9/2 17:49:00
前辈、高手
发现一个问题,表A修改 多值中的一行值“吊顶”,改成“吊顶22”
表B  吊顶,这行没删,有点问题
求助 :   如果要表B里有这行,表A里没这行,单元格绘制 样式1    这样如果就能发现问题

图片点击可在新窗口打开查看此主题相关图片如下:113.jpg
图片点击可在新窗口打开查看
9楼
有点蓝 发表于:2024/9/2 19:31:00
这种到表事件处理,参考:http://www.foxtable.com/webhelp/topics/1453.htm
共9 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .05078 s, 3 queries.