Foxtable(狐表)用户栏目专家坐堂 → 上传数据报错,关闭不了报错窗口


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

主题:上传数据报错,关闭不了报错窗口

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


加好友 发短信
等级:婴狐 帖子:59 积分:560 威望:0 精华:0 注册:2017/8/4 9:53:00
上传数据报错,关闭不了报错窗口  发帖心情 Post By:2017/10/10 10:36:00 [只看该作者]

如题,报错,无法关闭,除非在任务管理器中强制关闭

我的问题是,

对于上传数据,如何用语句对要上传的数据进行检查,

如果上传的字符类型和表中定义类型不一致,提示用户错误,而且提示完错误后,可以关闭窗口

如果字符类型和表中的一致,然后允许上传?

图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/10 10:40:00 [只看该作者]

1、你上传的是什么文件?不同的文件格式要用不同的方式打开判断。

 

2、做个具体的例子发上来测试。


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


加好友 发短信
等级:婴狐 帖子:59 积分:560 威望:0 精华:0 注册:2017/8/4 9:53:00
  发帖心情 Post By:2017/10/10 11:23:00 [只看该作者]

你好,见附件

这个程序的目的是:

让上传的5行数据,与4个客户(来自于account表),排列组合成 5*4 行,上传到 table uploadmodule

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目10.table

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:上传数据.xlsx


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


加好友 发短信
等级:婴狐 帖子:59 积分:560 威望:0 精华:0 注册:2017/8/4 9:53:00
  发帖心情 Post By:2017/10/10 11:28:00 [只看该作者]

我给的是没有问题的数据,您可以把单元格 F2 改成 n试试

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/10 11:39:00 [只看该作者]

 

[此贴子已经被作者于2017/10/10 11:40:07编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/10 11:43:00 [只看该作者]

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog =DialogResult.OK Then
    Dim t As Table = Tables("UploadModule")
    t.StopRedraw()
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    For Each dr As DataRow In DataTables("account").DataRows
        For n As Integer = 1 To Sheet.Rows.Count -1
            Dim r = t.DataTable.AddNew()
            For i As Integer = 0 To sheet.Cols.Count -1
                Dim cname As String = sheet(0, i).text
                If t.Cols.Contains(cname) Then
                    If t.Cols(cname).IsBoolean Then
                        r(cname) = iif(sheet(n, i).value="0" OrElse sheet(n, i).value="False", False, True)
                    ElseIf t.Cols(cname).IsNumeric Then
                        r(cname) = val(sheet(n, i).text)
                    Else
                        r(cname) = sheet(n, i).text
                    End If
                End If
            Next
            r("account") = dr("account")
        Next
    Next
    t.ResumeRedraw()
End If

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


加好友 发短信
等级:婴狐 帖子:59 积分:560 威望:0 精华:0 注册:2017/8/4 9:53:00
  发帖心情 Post By:2017/10/10 12:52:00 [只看该作者]

谢谢

我有另一种思路,但是不知道该怎么写

就是先导入一个account测试数据格式有无错误,如果没有的话,再倒入其他的account

问题是这个有无提示错误怎么用代码表达?

代码如下

 

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel文件|*.xlsx"

If dlg.ShowDialog = DialogResult.OK
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel" 
    mg.SourceTableName = "sheet1$" 
    mg.DataTableName = "UploadModule" 
    mg.Merge()


    如果没有错误,继续下面的代码;如果有错,终止下面的代码(这句话怎么写?)


    For i As Integer = 0 To DataTables("account").DataRows.count - 2
        Dim mg1 As New Merger
        mg1.SourcePath = dlg.FileName
        mg1.Format = "excel" 
        mg1.SourceTableName = "sheet1$" 
        mg1.DataTableName = "UploadModule" 
        mg1.Merge()
    Next
End If

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/10 14:14:00 [只看该作者]

必须用6楼的方法处理。

 回到顶部