以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  【求助】导入代码问题请教  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=152669)

--  作者:chen_sheng
--  发布时间:2020/7/17 20:14:00
--  【求助】导入代码问题请教
如下代码导入后窗口是白的  
Dim st As Date = Date.Now
\'MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") \'计算并显示执行代码所花费的秒数

SystemReady = False
Try
\'追加数据代码

  Dim dlg As New OpenFileDialog
    dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" \'设置筛选器

    If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
        MessageBox.Show("你选择的是:" & dlg.FileName,"提示")
        
        If MessageBox.Show("是否合并?","请确认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then
            Tables(eForm.Name & "_Table3").StopRedraw()
            Forms("加载窗口").Show

Dim Book As New XLS.Book(dlg.FileName)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables(eForm.Name & "_Table3").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"订单编号","工序","产品型号","数量","选择员工","差数","单价","金额"}
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1 
    Dim r As Row = Tables(eForm.Name & "_Table3").AddNew()
    For m As Integer = 0 To nms.Length - 1
         r(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables(eForm.Name & "_Table3").ResumeRedraw()

Catch ex As Exception
    MessageBox.Show("追加数据失败") 
End Try
SystemReady = True
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") \'计算并显示执行代码所花费的秒数

--  作者:linyunu
--  发布时间:2020/7/17 23:45:00
--  
试试
Dim st As Date = Date.Now
SystemReady = False
\'追加数据代码
Dim dlg As New OpenFileDialog
dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    If MessageBox.Show("是否合并?","请确认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then
        Forms("加载窗口").Show
        Try
            Dim Book As New XLS.Book(dlg.FileName)
            Dim Sheet As XLS.Sheet = Book.Sheets(0)
            Tables(e.Form.Name & "_Table3").StopRedraw()
            \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
            Dim nms() As String = {"订单编号","工序","产品型号","数量","选择员工","差数","单价","金额"}
            \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
            For n As Integer = 1 To Sheet.Rows.Count -1
                Dim r As Row = Tables(e.Form.Name & "_Table3").AddNew()
                For m As Integer = 0 To nms.Length - 1
                    r(nms(m)) = Sheet(n,m).Value
                Next
            Next
            Tables(eForm.Name & "_Table3").ResumeRedraw()
        Catch ex As Exception
            MessageBox.Show("追加数据失败")
        End Try
    End If
End If
SystemReady = True
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") \'计算并显示执行代码所花费的秒数

--  作者:有点蓝
--  发布时间:2020/7/18 9:06:00
--  
Dim st As Date = Date.Now
\'MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") \'计算并显示执行代码所花费的秒数


Try
\'追加数据代码

  Dim dlg As New OpenFileDialog
    dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" \'设置筛选器

    If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
        MessageBox.Show("你选择的是:" & dlg.FileName,"提示")
        
        If MessageBox.Show("是否合并?","请确认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then
            Tables(eForm.Name & "_Table3").StopRedraw()
            Forms("加载窗口").Show

Dim Book As New XLS.Book(dlg.FileName)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables(eForm.Name & "_Table3").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"订单编号","工序","产品型号","数量","选择员工","差数","单价","金额"}
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
SystemReady = False
For n As Integer = 1 To Sheet.Rows.Count -1 
    Dim r As Row = Tables(eForm.Name & "_Table3").AddNew()
    For m As Integer = 0 To nms.Length - 1
         r(nms(m)) = Sheet(n,m).Value
    Next
Next
SystemReady = True
Tables(eForm.Name & "_Table3").ResumeRedraw()

Catch ex As Exception
    MessageBox.Show("追加数据失败") 
End Try

MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") \'计算并显示执行代码所花费的秒数