Foxtable(狐表)用户栏目专家坐堂 → 动态表的表名问题


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

主题:动态表的表名问题

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


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

它是动态生成的表,Table就是tbl

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


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

这表在排座时是用代码生成的。

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 * Fro m {综合组}","")

    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


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


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

帮助我都看过了,昨晚把写法都试了无数遍都不行才问你,可你一直跟我绕,问你一点东西真的很累,常拖几天!

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


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

改为这样还是报错:
.NET Framework 版本:4.0.30319.18063
Foxtable 版本:2021.11.16.11
错误所在事件:菜单,保存,Click
详细错误信息:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

我是指出这提示,红色标注是我已经改过来的代码,问你这样改对不对,如果对了,就不是表名的问题了,从报错的提示看问题已不再是表名的问题了。

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


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

其实这代码还是有问题的,我要判断动态生成的表是否存在,如果不存在,取消保存操作。
Dim tbl As WinForm.Table
Dim tab As WinForm.TabControl = Forms("主窗口").Controls("TabControl1")
If tab.TabPages.Contains(Str) Then
    tbl = Forms("主窗口").Controls("Table'" & Str & "'")
    For Each nr As Row In tbl.Table.Rows

红色标注的代码并非判断表,而是动态生成的页名。

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


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

这动态表到底应怎么写才对。

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


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

它在排座时生成表,保存时要先判断这动态表是否存在。

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


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

Dim tbl As WinForm.Table = Forms("主窗口").Controls("Table'" & Str & "'")
If Forms("主窗口").Controls.Contains(tbl) Then
    For Each nr As Row In tbl.Table.Rows
......
Else
    Return
End If
[此贴子已经被作者于2021/11/15 19:34:01编辑过]

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


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

if tables.Contains("主窗口_Table'" & Str & "'") then

if Forms("主窗口").ExistControl("Table'" & Str & "'") then 

这两个都报错:
.NET Framework 版本:4.0.30319.18063
Foxtable 版本:2021.11.16.11
错误所在事件:菜单,保存,Click
详细错误信息:
Object reference not set to an instance of an object.

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


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


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

在没排序并且生成table情况下按保存按钮,照理我已作判断,用代码取消,不应再有提示弹出,有提示弹出说明判断无效,应怎写?
If Forms.contains("主窗口") Then
    Dim qsmc As WinForm.ComboBox = Forms("主窗口").Controls("棋赛名称")
    Dim di1 As String = qsmc.Value
    Dim m As WinForm.TextBox = Forms("主窗口").Controls("第几轮")
    Dim di2 As String = m.Value
    Dim bsrq As WinForm.DateTimePicker = Forms("主窗口").Controls("rq")
    Dim di3 As Date = bsrq.Value
    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
    Dim tbl As WinForm.Table = Forms("主窗口").Controls("Table'" & Str & "'")
    'If Tables.Contains("主窗口_Table'" & Str & "'") Then '这样判断也可以
    If Forms("主窗口").ExistControl("Table'" & Str & "'") Then
        For Each nr As Row In tbl.Table.Rows
......
    Else
        Return
    End If
Else
    Return
End If
[此贴子已经被作者于2021/11/16 10:04:26编辑过]

 回到顶部
总数 23 上一页 1 2 3 下一页