以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:项目关闭前删除不需要的表,总出错! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79802) |
-- 作者:lmlptj -- 发布时间:2016/1/9 12:57:00 -- 求助:项目关闭前删除不需要的表,总出错! BeforeCloseProject 关闭项目之前执行 事件代码: ‘想要实现的目的:关闭项目前,如果不是表A,表B,表C,表D,则全部删除!! 代码如下: If DataTables.Count > 4 Then Dim Builder As New ADOXBuilder Builder.Open() With Builder Dim tbs As String = "表A,表B,表C,表D" For Each t As Table In Tables Dim name = t.Name If tbs.Contains(name) = False Then .DeleteTable(name) End If Next End With Builder.Close() End If 但会经常性地出现以下错误信息!!
|
-- 作者:lmlptj -- 发布时间:2016/1/9 13:09:00 -- 请老师帮个忙! |
-- 作者:Hyphen -- 发布时间:2016/1/9 14:16:00 -- 其它表是通过什么方式生成的? 如果是动态生成的临时表,不用删除,关闭项目就自动没有了
|
-- 作者:lmlptj -- 发布时间:2016/1/9 15:10:00 -- 不是临时生成的表!而是程序运行过程中随机添加的正常表。 |
-- 作者:Hyphen -- 发布时间:2016/1/9 15:15:00 -- 通过什么方式生成的?代码说明一下! 程序运行过程中随机添加的一般都是临时表 |
-- 作者:lmlptj -- 发布时间:2016/1/9 15:58:00 -- 是从Accesc文件中加导入进来的。主要是对历史数据的查询或核对,项目关闭后这些表就不再需要了。 [此贴子已经被作者于2016/1/9 15:59:25编辑过]
|
-- 作者:Hyphen -- 发布时间:2016/1/9 16:39:00 -- 改成Datatable,Tables包含了关联表 For Each t As DataTable In DataTables Dim name = t.Name If tbs.Contains(name) = False Then .DeleteTable(name) End If Next 有外部表,加上 t.Type判断一下 If tbs.Contains(name) = False AndAlso t.Type = 1 Then
|
-- 作者:lmlptj -- 发布时间:2016/1/9 19:21:00 -- 错误依旧呢! |
-- 作者:lmlptj -- 发布时间:2016/1/9 19:30:00 -- 将查询历史记录的表名用全局变量引用表名,然后在项目关闭前事件中直接删除查询的表名即解决了这个问题。谢谢你热心的解答和指导。 |
-- 作者:大红袍 -- 发布时间:2016/1/10 12:13:00 -- Dim dts As new List(Of String) Dim tbs As String = "表A,表B" For Each dt As DataTable In DataTables If tbs.Contains(dt.name) = False Then dts.add(dt.name) End If Next Dim Builder As New ADOXBuilder Builder.Open() With Builder For Each n As String In dts .DeleteTable(n) Next End With Builder.Close() |