以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  问题:窗口已经关闭,不能调用其中的控件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124896)

--  作者:susu312
--  发布时间:2018/9/15 18:20:00
--  问题:窗口已经关闭,不能调用其中的控件

 

老师,我点历史库的导入按钮时 ,有时会遇到这个问题:历史库导入窗口已关闭,不能调用其中的控件combobox1

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
      If FileIsOpened( dlg.FileName )= True Then
          MessageBox.Show("请关闭文件后重新导入!")
          e.Form.Close
      Else
         If Connections.Contains("test") Then
             If DataTables.Contains("临时表") Then DataTables.Unload("临时表")
             Connections.Delete("test")
         Else
             e.Form.Close
         End If
         Connections.Add("test", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dlg.FileName & ";Extended Properties=\'Excel 8.0;HDR=yes\'")
         Dim tns As String = ""
         For Each tn As String In Connections("test").GetTableNames
             tns &= tn & "|"
         Next
         e.Form.Controls("ComboBox1").ComboList = tns.TrimEnd("|")
         e.Form.Controls("ComboBox1").Selectedindex = 0
      End  If
Else
     e.Form.Close
End If

 

 

 


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

 


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

 

奇怪的是,我再点一次导入, 就没有这个问题了?

[此贴子已经被作者于2018/9/15 19:38:28编辑过]

--  作者:有点甜
--  发布时间:2018/9/16 11:21:00
--  

红色代码有问题,可以删除。

 

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
      If FileIsOpened( dlg.FileName )= True Then
          MessageBox.Show("请关闭文件后重新导入!")
          e.Form.Close
      Else
         If Connections.Contains("test") Then
             If DataTables.Contains("临时表") Then DataTables.Unload("临时表")
             Connections.Delete("test")
         Else
             e.Form.Close

         End If
         Connections.Add("test", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dlg.FileName & ";Extended Properties=\'Excel 8.0;HDR=yes\'")
         Dim tns As String = ""
         For Each tn As String In Connections("test").GetTableNames
             tns &= tn & "|"
         Next
         e.Form.Controls("ComboBox1").ComboList = tns.TrimEnd("|")
         e.Form.Controls("ComboBox1").Selectedindex = 0
      End  If
Else
     e.Form.Close
End If


--  作者:susu312
--  发布时间:2018/9/16 11:32:00
--  
以下是引用有点甜在2018/9/16 11:21:00的发言:

红色代码有问题,可以删除。

 

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
      If FileIsOpened( dlg.FileName )= True Then
          MessageBox.Show("请关闭文件后重新导入!")
          e.Form.Close
      Else
         If Connections.Contains("test") Then
             If DataTables.Contains("临时表") Then DataTables.Unload("临时表")
             Connections.Delete("test")
         Else
             e.Form.Close

         End If
         Connections.Add("test", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dlg.FileName & ";Extended Properties=\'Excel 8.0;HDR=yes\'")
         Dim tns As String = ""
         For Each tn As String In Connections("test").GetTableNames
             tns &= tn & "|"
         Next
         e.Form.Controls("ComboBox1").ComboList = tns.TrimEnd("|")
         e.Form.Controls("ComboBox1").Selectedindex = 0
      End  If
Else
     e.Form.Close
End If

非常感谢您