Foxtable(狐表)用户栏目专家坐堂 → [求助]查询表根据 国家、省份、市、街道表的变化自动更新汇总


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

主题:[求助]查询表根据 国家、省份、市、街道表的变化自动更新汇总

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/31 12:25:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/31 12:45:00 [显示全部帖子]

以下是引用湛江智在2017/7/31 12:44:00的发言:

因为后期,还要利用查询表,生成 国家\省份\市\街道  的文件夹,所以要实现查询表自动填入前面关联表的数据,下午版主帮忙写个代码了

目前能力不足,写不了这个代码

 

直接用3楼的查询表不行?为什么一定要填充?

 

如果要生成文件夹,你可以循环每一行,然后生成的。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/31 14:47:00 [显示全部帖子]

直接用查询表也可以有同样的效果啊。

 

如果确实要填充,参考代码

 

Dim drs1 = DataTables("国家").Select("")
For Each dr As DataRow In drs1
    Dim drs2 = DataTables("省份").Select("所属国家 = '" & dr("编号") & "'")
    If drs2.count = 0 Then
        Dim ndr As DataRow = DataTables("查询").AddNew
        ndr("国家") = dr("名称")
    Else
        For Each cdr As DataRow In drs2
            Dim drs3 = DataTables("市").Select("所属省份编号 = '" & cdr("编号") & "'")
            If drs3.count = 0 Then
                Dim ndr As DataRow = DataTables("查询").AddNew
                ndr("国家") = dr("名称")
                ndr("省份") = cdr("名称")
            Else
                For Each ccdr As DataRow In drs3
                    Dim drs4 = DataTables("街道").Select("所属市编号 = '" & ccdr("编号") & "'")
                    If drs4.count = 0 Then
                        Dim ndr As DataRow = DataTables("查询").AddNew
                        ndr("国家") = dr("名称")
                        ndr("省份") = cdr("名称")
                        ndr("市") = ccdr("名称")
                    Else
                        For Each cccdr As DataRow In drs4
                            Dim ndr As DataRow = DataTables("查询").AddNew
                            ndr("国家") = dr("名称")
                            ndr("省份") = cdr("名称")
                            ndr("市") = ccdr("名称")
                            ndr("街道") = cccdr("名称")
                        Next
                    End If
                Next
            End If
        Next
    End If
Next

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/31 15:14:00 [显示全部帖子]

不要在datacolchanged事件写。请做一个按钮。

 

如果存在,加上代码判断 http://www.foxtable.com/webhelp/scr/0396.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/31 16:54:00 [显示全部帖子]

Dim drs1 = DataTables("国家").Select("")
For Each dr As DataRow In drs1
    Dim drs2 = DataTables("省份").Select("所属国家 = '" & dr("编号") & "'")
    If drs2.count = 0 Then
        Dim ndr As DataRow = DataTables("查询").find("国家='" & dr("名称") & "'")
        If ndr Is Nothing Then ndr = DataTables("查询").AddNew
        ndr("国家") = dr("名称")
    Else
        For Each cdr As DataRow In drs2
            Dim drs3 = DataTables("市").Select("所属省份编号 = '" & cdr("编号") & "'")
            If drs3.count = 0 Then
                Dim ndr As DataRow = DataTables("查询").find("国家='" & dr("名称") & "' and 省份 = '" & cdr("名称") & "'")
                If ndr Is Nothing Then ndr = DataTables("查询").AddNew
               
                ndr("国家") = dr("名称")
                ndr("省份") = cdr("名称")
            Else
                For Each ccdr As DataRow In drs3
                    Dim drs4 = DataTables("街道").Select("所属市编号 = '" & ccdr("编号") & "'")
                    If drs4.count = 0 Then
                        Dim ndr As DataRow = DataTables("查询").find("国家='" & dr("名称") & "' and 省份 = '" & cdr("名称") & "' and 市 = '" & ccdr("名称") & "'")
                        If ndr Is Nothing Then ndr = DataTables("查询").AddNew
                        ndr("国家") = dr("名称")
                        ndr("省份") = cdr("名称")
                        ndr("市") = ccdr("名称")
                    Else
                        For Each cccdr As DataRow In drs4
                            Dim ndr As DataRow = DataTables("查询").find("国家='" & dr("名称") & "' and 省份 = '" & cdr("名称") & "' and 市 = '" & ccdr("名称") & "' and 街道 = '" & cccdr("名称") & "'")
                            If ndr Is Nothing Then ndr = DataTables("查询").AddNew
                            ndr("国家") = dr("名称")
                            ndr("省份") = cdr("名称")
                            ndr("市") = ccdr("名称")
                            ndr("街道") = cccdr("名称")
                        Next
                    End If
                Next
            End If
        Next
    End If
Next

 回到顶部