Foxtable(狐表)用户栏目专家坐堂 → 排座表与查询表串改了!


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

主题:排座表与查询表串改了!

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
排座表与查询表串改了!  发帖心情 Post By:2022/1/21 14:34:00 [只看该作者]

这是双击比赛积分表弹出的座位表的代码,修改数据能保存:

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

If Forms("主窗口").opened Then
    Forms("主窗口").Controls("棋赛名称").text = e.Row("棋赛名称")
    Dim qsmc As WinForm.ComboBox = Forms("主窗口").Controls("棋赛名称")
    Dim di1 As String = qsmc.text
    If e.Row.IsNull("棋赛副名") Then
        Forms("主窗口").Controls("TextBox4").text = Nothing
    Else
        Forms("主窗口").Controls("TextBox4").text = e.Row("棋赛副名")
    End If
    Forms("主窗口").Controls("第几轮").text = e.Row("第几轮比赛")
    Dim m As WinForm.TextBox = Forms("主窗口").Controls("第几轮")
    Dim di2 As String = m.text
    Forms("主窗口").Controls("rq").Value = e.Row("日期")
    Dim bsrq As WinForm.DateTimePicker = Forms("主窗口").Controls("rq")
    Dim di3 As Date = bsrq.Value
    Forms("主窗口").Controls("bslx").text = e.Row("团体赛或个人赛")
    Dim bslx As WinForm.TextBox = Forms("主窗口").Controls("bslx")
    Dim lx As String = bslx.text
    Forms("主窗口").Controls("fenzhu").text = e.Row("分组")
    Dim fz As WinForm.DropDownBox = Forms("主窗口").Controls("fenzhu")
    Dim Str As String = fz.text
    Dim tbl As WinForm.Table
    Dim tab As WinForm.TabControl = Forms("主窗口").Controls("TabControl1")
    If tab.TabPages.Contains(Str) = False Then
        tab.TabPages.Add(Str,Str)
        tbl = Forms("主窗口").CreateSQLTable("Table'" & Str & "'","Select * Fr om {综合组}","")
        tbl.SetBounds(0, 0, 983, 580)
        Forms("主窗口").Controls("TabControl1").Tabpages(Str).AddControl(tbl)
        Forms("主窗口").Controls("TabControl1").SelectedIndex = tab.TabPages.count + 1
    Else
        tbl = Forms("主窗口").Controls("Table'" & Str & "'")
    End If
    tbl.Table.SetColVisibleWidth("桌号|40|红方_名次|40|红方_编号|40|红方_姓名|60|红方_上轮止累计积分|80|红方_曾交战对手累计积分|80|红方_签名|60|当前局成绩_红方|80|当前局成绩_黑方|80|黑方_签名|60|黑方_名次|40|黑方_编号|40|黑方_姓名|60|黑方_上轮止累计积分|80|黑方_曾交战对手累计积分|80")
    tbl.Table.SetHeaderRowHeight(40)
    tbl.Table.DataTable.EnterKeyActionDown = True
    tbl.Table.DataTable.DataRows.Clear
    Dim drs As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "'","","日期 Desc,团体赛或个人赛,棋赛名称,分组,桌号 Desc")
    For Each s As Integer In DataTables("比赛积分").SQLGetValues("桌号","[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] > 0","桌号")
        Dim nr As DataRow = tbl.Table.DataTable.AddNew
        nr("桌号") = s
        Dim dr As DataRow = DataTables("比赛积分").SQLFind("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = " & s & " And [红黑方] = '红方'")
        If dr IsNot Nothing Then
            If di2 = 1 Then
                nr("红方_名次") = Nothing
            Else
                nr("红方_名次") = dr("上轮名次")
            End If
            nr("红方_编号") = dr("编号")
            nr("红方_姓名") = dr("姓名")
            nr("红方_上轮止累计积分") = dr("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = dr("曾交战对手累计积分")
            nr("当前局成绩_红方") = dr("积分")
        End If
        dr = DataTables("比赛积分").SQLFind("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = " & s & " And [红黑方] = '黑方'")
        If dr IsNot Nothing Then
            If di2 = 1 Then
                nr("黑方_名次") = Nothing
            Else
                nr("黑方_名次") = dr("上轮名次")
            End If
            nr("黑方_编号") = dr("编号")
            nr("黑方_姓名") = dr("姓名")
            nr("黑方_上轮止累计积分") = dr("上轮止累计积分")
            nr("黑方_曾交战对手累计积分") = dr("曾交战对手累计积分")
            nr("当前局成绩_黑方") = dr("积分")
        End If
    Next
    Dim drs6 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0","","桌号")
    Dim drs7 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0 And [红黑方] = '红方'","","桌号")
    Dim drs8 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0 And [红黑方] = '黑方'","","桌号")
    For ci As Integer = 0 To math.Ceiling((drs6.Count - 1) / 2)
        Dim nr As DataRow = tbl.Table.DataTable.AddNew
        If drs7.count < drs8.count Then
            If ci <= drs7.count - 1 And ci < drs8.count - 1 Then
                nr("桌号") = 0
                If di2 = 1 Then
                    nr("红方_名次") = Nothing
                Else
                    nr("红方_名次") = drs7(ci)("上轮名次")
                End If
                nr("红方_编号") = drs7(ci)("编号")
                nr("红方_姓名") = drs7(ci)("姓名")
                nr("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
                nr("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
                nr("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
                If di2 = 1 Then
                    nr("黑方_名次") = Nothing
                Else
                    nr("黑方_名次") = drs8(ci)("上轮名次")
                End If
                nr("黑方_编号") = drs8(ci)("编号")
                nr("黑方_姓名") = drs8(ci)("姓名")
                nr("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
                nr("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
                nr("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
            ElseIf ci > drs7.count - 1 And ci <= drs8.count - 1 Then
                nr("桌号") = 0
                nr("红方_编号") = Nothing
                nr("红方_姓名") = Nothing
                nr("红方_上轮止累计积分") = 0
                nr("红方_曾交战对手累计积分") = 0
                nr("当前局成绩_红方") = 0
                nr("黑方_名次") = drs8(ci)("上轮名次")
                nr("黑方_编号") = drs8(ci)("编号")
                nr("黑方_姓名") = drs8(ci)("姓名")
                nr("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
                nr("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
                nr("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
            End If
        ElseIf drs7.count > drs8.count Then
            If ci < drs7.count - 1 And ci <= drs8.count - 1 Then
                nr("桌号") = 0
                nr("红方_名次") = drs7(ci)("上轮名次")
                nr("红方_编号") = drs7(ci)("编号")
                nr("红方_姓名") = drs7(ci)("姓名")
                nr("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
                nr("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
                nr("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
                nr("黑方_名次") = drs8(ci)("上轮名次")
                nr("黑方_编号") = drs8(ci)("编号")
                nr("黑方_姓名") = drs8(ci)("姓名")
                nr("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
                nr("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
                nr("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
            ElseIf ci <= drs7.count - 1 And ci > drs8.count - 1 Then
                nr("桌号") = 0
                nr("红方_名次") = drs7(ci)("上轮名次")
                nr("红方_编号") = drs7(ci)("编号")
                nr("红方_姓名") = drs7(ci)("姓名")
                nr("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
                nr("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
                nr("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
                nr("黑方_名次") = Nothing
                nr("黑方_编号") = Nothing
                nr("黑方_姓名") = Nothing
                nr("黑方_上轮止累计积分") = 0
                nr("黑方_曾交战对手累计积分") = 0
                nr("当前局成绩_黑方") = 0
            End If
        End If
    Next
    tbl.Table.DataTable.GlobalHandler.DataColChanging = True
Else
    Return
End If
未完,一楼续。

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


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


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20220121142705.png
图片点击可在新窗口打开查看
这是查询表的代码,修的改数据不能保存,这没问题,问题是我用查询表查询,座位表的数据同步变成查询表里的数据,我希望它们是独立分开的。
If Forms("主窗口").opened Then
    Dim qsmc As WinForm.ComboBox = Forms("主窗口").Controls("棋赛名称")
    Dim di1 As String = qsmc.Value
    If di1 = "" Then
        messagebox.show("请选择棋赛名称")
        Return
    End If
    Dim m As WinForm.TextBox = Forms("主窗口").Controls("第几轮")
    Dim di2 As String = m.Value
    If di2 = "" Then
        messagebox.show("请输入第几轮")
        Return
    End If
    Dim bsrq As WinForm.DateTimePicker = Forms("主窗口").Controls("rq")
    Dim di3 As Date = bsrq.Value
    If Forms("主窗口").Controls("rq").text = "" Then
        messagebox.show("请选择日期")
        Return
    End If
    Dim bslx As WinForm.TextBox = Forms("主窗口").Controls("bslx")
    Dim lx As String = bslx.Value
    Dim fz As WinForm.DropDownBox = Forms("主窗口").Controls("fenzhu")
    Dim Str As String = fz.Value
    If Forms("主窗口").Controls("fenzhu").text = "" Then
        messagebox.show("请选择分组")
        Return
    End If
    Dim tb2 As WinForm.Table
    Dim tab As WinForm.TabControl = Forms("主窗口").Controls("TabControl1")
    Dim mc As String = Str & "排座查询"
    If tab.TabPages.Contains(mc) = False Then
        tab.TabPages.Add(mc,mc)
        tb2 = Forms("主窗口").CreateSQLTable("Table'" & mc & "'","Select * Fr om {综合组查询}","")
        tb2.SetBounds(0, 0, 983, 580)
        Forms("主窗口").Controls("TabControl1").Tabpages(mc).AddControl(tb2)
        Forms("主窗口").Controls("TabControl1").SelectedIndex = tab.TabPages.count + 1
    Else
        tb2 = Forms("主窗口").Controls("Table'" & mc & "'")
    End If
    tb2.Table.SetColVisibleWidth("桌号|40|红方_名次|40|红方_编号|40|红方_姓名|55|红方_上轮止累计积分|60|红方_曾交战对手累计积分|70|红方_签名|60|当前局成绩_红方|35|当前局成绩_黑方|35|黑方_签名|60|黑方_名次|40|黑方_编号|40|黑方_姓名|55|黑方_上轮止累计积分|60|黑方_曾交战对手累计积分|70")
    tb2.Table.SetHeaderRowHeight(20,40)
    tb2.Table.DataTable.EnterKeyActionDown = True
    tb2.Table.DataTable.DataRows.Clear
    Dim drs As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "'","","日期 Desc,团体赛或个人赛,棋赛名称,分组,桌号 Desc")
    For Each s As Integer In DataTables("比赛积分").SQLGetValues("桌号","[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] > 0","桌号")
        Dim nr As DataRow = tb2.Table.DataTable.AddNew
        nr("桌号") = s
        Dim dr As DataRow = DataTables("比赛积分").SQLFind("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = " & s & " And [红黑方] = '红方'")
        If dr IsNot Nothing Then
            nr("红方_名次") = dr("上轮名次")
            nr("红方_编号") = dr("编号")
            nr("红方_姓名") = dr("姓名")
            nr("红方_上轮止累计积分") = dr("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = dr("曾交战对手累计积分")
            nr("当前局成绩_红方") = dr("积分")
        End If
        dr = DataTables("比赛积分").SQLFind("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = " & s & " And [红黑方] = '黑方'")
        If dr IsNot Nothing Then
            nr("黑方_名次") = dr("上轮名次")
            nr("黑方_编号") = dr("编号")
            nr("黑方_姓名") = dr("姓名")
            nr("黑方_上轮止累计积分") = dr("上轮止累计积分")
            nr("黑方_曾交战对手累计积分") = dr("曾交战对手累计积分")
            nr("当前局成绩_黑方") = dr("积分")
        End If
    Next

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


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

    Dim drs6 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0","","桌号")
    Dim drs7 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0 And [红黑方] = '红方'","","桌号")
    Dim drs8 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0 And [红黑方] = '黑方'","","桌号")
    For ci As Integer = 0 To math.Ceiling((drs6.Count - 1) / 2)
        Dim nr As DataRow = tb2.Table.DataTable.AddNew
        If drs7.count < drs8.count Then
            If ci <= drs7.count - 1 And ci < drs8.count - 1 Then
                nr("桌号") = 0
                nr("红方_名次") = drs7(ci)("上轮名次")
                nr("红方_编号") = drs7(ci)("编号")
                nr("红方_姓名") = drs7(ci)("姓名")
                nr("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
                nr("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
                nr("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
                nr("黑方_名次") = drs8(ci)("上轮名次")
                nr("黑方_编号") = drs8(ci)("编号")
                nr("黑方_姓名") = drs8(ci)("姓名")
                nr("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
                nr("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
                nr("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
            ElseIf ci > drs7.count - 1 And ci <= drs8.count - 1 Then
                nr("桌号") = 0
                nr("红方_编号") = Nothing
                nr("红方_姓名") = Nothing
                nr("红方_上轮止累计积分") = 0
                nr("红方_曾交战对手累计积分") = 0
                nr("当前局成绩_红方") = 0
                nr("黑方_名次") = drs8(ci)("上轮名次")
                nr("黑方_编号") = drs8(ci)("编号")
                nr("黑方_姓名") = drs8(ci)("姓名")
                nr("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
                nr("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
                nr("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
            End If
        ElseIf drs7.count > drs8.count Then
            If ci < drs7.count - 1 And ci <= drs8.count - 1 Then
                nr("桌号") = 0
                nr("红方_名次") = drs7(ci)("上轮名次")
                nr("红方_编号") = drs7(ci)("编号")
                nr("红方_姓名") = drs7(ci)("姓名")
                nr("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
                nr("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
                nr("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
                nr("黑方_名次") = drs8(ci)("上轮名次")
                nr("黑方_编号") = drs8(ci)("编号")
                nr("黑方_姓名") = drs8(ci)("姓名")
                nr("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
                nr("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
                nr("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
            ElseIf ci <= drs7.count - 1 And ci > drs8.count - 1 Then
                nr("桌号") = 0
                nr("红方_名次") = drs7(ci)("上轮名次")
                nr("红方_编号") = drs7(ci)("编号")
                nr("红方_姓名") = drs7(ci)("姓名")
                nr("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
                nr("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
                nr("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
                nr("黑方_名次") = Nothing
                nr("黑方_编号") = Nothing
                nr("黑方_姓名") = Nothing
                nr("黑方_上轮止累计积分") = 0
                nr("黑方_曾交战对手累计积分") = 0
                nr("当前局成绩_黑方") = 0
            End If
        End If
    Next
End If

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


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

它们后台引用的表一个是综合表,一个是综合查询表都是独立的空表,生成的表名称也不同,为什么数据串改了?

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107648 积分:547549 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/21 15:30:00 [只看该作者]

这种代码没法看。自己减少代码调试

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


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

数据本身是没问题的,只是我想查询第一轮比赛的数据,座位表原显示第二轮的数据还是第二轮的,不要跟查询表的一样,也变成第一轮的,是不是这两个表的对应变量名不能一样,要改一改?

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


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

我删除原来的Bin重新打开一次再试没问题了。
[此贴子已经被作者于2022/1/21 15:54:37编辑过]

 回到顶部