Foxtable(狐表)用户栏目专家坐堂 → [求助]增加表重启后有错误代码,而在命令窗口测试却没有


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

主题:[求助]增加表重启后有错误代码,而在命令窗口测试却没有

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
[求助]增加表重启后有错误代码,而在命令窗口测试却没有  发帖心情 Post By:2021/2/18 14:06:00 [显示全部帖子]

 重启后有错误代码,而在命令窗口确没有
Dim tx As String  = e.Form.Controls("TextBox2").text
If tx = "" Then
    MessageBox.Show("表名称不能为空!","提示")
ElseIf PY.IsHanzi(left(tx,1)) = False Then   '第一个字符不是汉字时
    MessageBox.Show("表名称开头字符必须为汉字!","提示")
Else
    Dim Builder As New ADOXBuilder
    Dim tbl As ADOXTable
    Builder.Open()
    tbl = Builder.NewTable(tx) '创建表
    With tbl
        For Each r As Row In Tables("增加表")
            If r("类型") = "字符" Then
                .AddColumn(r("列名称") ,ADOXType.String, r("长度"))
            ElseIf r("类型") = "日期" Then
                .AddColumn(r("列名称") ,ADOXType.DateTime)
            ElseIf r("类型") = "数字" Then
                .AddColumn(r("列名称") ,ADOXType.Integer)
            ElseIf r("类型") = "备注" Then
                .AddColumn(r("列名称") ,ADOXType.Text)
            Else
                Exit For
            End If
        Next
    End With
    Builder.AddTable(tbl) '增加表
    Builder.Close()
    e.Form.close()
    Syscmd.Project.Open(ProjectFile)
End If

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2021/2/18 14:09:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:增加表测试.zip

 

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2021/2/18 15:12:00 [显示全部帖子]

 刚才是哪里的问题?改后确实好了,我没有看出来是改动的哪里?

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2021/2/18 15:21:00 [显示全部帖子]

 另外还有个问题:类型列更改后长度列没有立即改变,而是离开类别的这个单元格后长度列才改变,这个代码我是写在了

DataColChanged里

If e.DataCol.Name = "类型" Then
    If e.DataRow("类型") = "字符" Then
        e.DataRow("长度") = 16
    Else
        e.DataRow("长度") = Nothing
    End If
End If


是应该写在哪个事件里?我试了多次都没有试好


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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2021/2/18 15:26:00 [显示全部帖子]

 加了这个e.Cancel = True,看出来了

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2021/2/18 16:06:00 [显示全部帖子]

 OK,好了,非常谢谢!

 回到顶部