以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  系统数据初始化  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153763)

--  作者:outcat
--  发布时间:2020/8/21 21:32:00
--  系统数据初始化

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


系统数据初始化功能

源代码 
Dim str As String
str ="一旦初始化,数据将全部删除,而且不再恢复,请谨慎操作,或者先将本数据库备份!不需要初始化的不要勾选就可了."
Dim Result As DialogResult
Result = MessageBox.Show(str, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    Dim r1 As Row = Tables("初始化_Table1").Current
    If r1.Checked = True Then
        
        If r1("功能模块") = "员工信息"
            DataTables("部门信息表").DataRows.Clear
            DataTables("学历表").DataRows.Clear
            DataTables("职务表").DataRows.Clear
            DataTables("员工信息表").DataRows.Clear
        End If
    End If
End If 

现在我想动态的查找 比如还是选中的  员工信息,删除上面这个表 ,改成下面这个,通过查找系统数据表,找到这个表,可是这块该怎么调用呢,搞不明白了,请老师赐教
Dim str As String
str ="一旦初始化,数据将全部删除,而且不再恢复,请谨慎操作,或者先将本数据库备份!不需要初始化的不要勾选就可了."
Dim Result As DialogResult
Result = MessageBox.Show(str, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    Dim r1 As Row = Tables("初始化_Table1").Current
    If r1.Checked = True Then
        
        Dim dr As DataRow
        dr = DataTables("系统数据表").SQLFind("二级分类 = \'" & r1("功能模块") & "\'") 

        If dr IsNot Nothing Then
            dr("表名").DataRows.Clear
            
            \'DataTables("部门信息表").DataRows.Clear
            \'DataTables("学历表").DataRows.Clear
            \'DataTables("职务表").DataRows.Clear
            \'DataTables("员工信息表").DataRows.Clear
        End If
    End If

--  作者:有点蓝
--  发布时间:2020/8/22 9:14:00
--  
DataTables(dr("表名")).DataRows.Clear
--  作者:outcat
--  发布时间:2020/8/23 18:06:00
--  
 
For Each dr As Row In Tables("初始化_Table1").GetCheckedRows
            For Each nm As DataRow In DataTables("系统数据表").DataRows
                If DataTables("系统数据表").sqlFind("二级分类 = " & dr("功能模块") ) Is Nothing Then

                    DataTables(nm("表名")).DataRows.Clear
                End If
            Next
        Next

老师,给看一下,我这是要 勾选了那个功能模块,然后选择 对应功能模块下的表,结果现在是不起作用, 全部表都删除了

--  作者:outcat
--  发布时间:2020/8/23 18:29:00
--  
 If DataTables("系统数据表").sqlFind("二级分类 = " & dr("功能模块") ) Is Nothing Then  这句写错了。我呢改成Isnot nothing 后,结果该分类下的一个表数据也删除不了了
,还是得请老师赐教

--  作者:有点蓝
--  发布时间:2020/8/23 20:43:00
--  
相关表格数据截图看看

For Each dr As Row In Tables("初始化_Table1").GetCheckedRows
                If DataTables("系统数据表").sqlFind("二级分类 = " & dr("功能模块") ) Is Nothing Then
                    DataTables(dr("表名")).DataRows.Clear
                End If
        Next

--  作者:outcat
--  发布时间:2020/8/24 0:25:00
--  

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

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

窗体这个表(二级分类表) 是通过 sql语句 加载的,想要比如勾选了 员工信息、商品信息,那么就从第二张图 ,系统数据数据表  找到 勾选的 二级分类下,包含的表名依次清空数据,现在呢, 现在要么   数据表全清,要么一个也不清,搞不明白了,请教老师

--  作者:有点蓝
--  发布时间:2020/8/24 8:41:00
--  
For Each dr As Row In Tables("初始化_Table1").GetCheckedRows
            For Each nm As DataRow In DataTables("系统数据表").sqlselect("二级分类 = " & dr("功能模块") )
                    DataTables(nm("表名")).DataRows.Clear
            Next
        Next

--  作者:outcat
--  发布时间:2020/8/24 9:37:00
--  
老师这样是一个表也不执行


下面我改成这样,然后看取得表名,结果是把所有表都清了
    For Each dr As Row In Tables("初始化_Table1").GetCheckedRows
        MessageBox.Show(dr("二级分类"))
          For Each nm As DataRow In DataTables("系统数据表").DataRows

        If DataTables("系统数据表").sqlselect("二级分类 = \'" & dr("二级分类") & "\'" ) IsNot Nothing Then
            
            MessageBox.Show(nm("表名"))
            DataTables(nm("表名")).DataRows.Clear
        End If
Next
    Next

--  作者:有点蓝
--  发布时间:2020/8/24 10:17:00
--  
For Each dr As Row In Tables("初始化_Table1").GetCheckedRows
            For Each nm As DataRow In DataTables("系统数据表").sqlselect("二级分类 = \'" & dr("二级分类") & "\'")
                    DataTables(nm("表名")).DataRows.Clear
            Next
        Next