以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助 判断是否存在某个表 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66421) |
-- 作者:zuyong -- 发布时间:2015/4/6 12:24:00 -- 求助 判断是否存在某个表 用下面的代码在外部源access生成了一个新表 Dim Builder As New ADOXBuilder("我的外部源") \'指定数据源名称 Dim tbl As ADOXTable Builder.Open() tbl = Builder.NewTable("htg695") \'创建表 表名前加上 With tbl .AddColumn("产品" ,ADOXType.String, 12) .AddColumn("客户" ,ADOXType.String, 20) .AddColumn("数量" ,ADOXType.Integer) .AddColumn("备注" ,ADOXType.Text) End With Builder.AddTable(tbl,True, True) \'增加表 Builder.Close() 再用下面的代码判断是否存在这个表,结果是未找到 If DataTables.Contains("htg695") \'如果存在统计表 MessageBox.Show("htg695表已经存在") End If 但是用系统菜单生成的表,用上面这段代码却能找到,实在搞不懂了,老师指点一下吧 如果直接用代码删除这个表htg695,则提示 :不存在名称为"htg695"的DataTable [此贴子已经被作者于2015/4/6 12:33:21编辑过]
|
-- 作者:ybil -- 发布时间:2015/4/6 13:01:00 -- 用DataTables.Contains只能判断外部数据源已加载到DataTable中的数据表 但是用系统菜单生成的表,在外部数据源中生成且立时加载到DataTable中 因此需要这样: MessageBox.Show("htg695表已经存在") End If |
-- 作者:zuyong -- 发布时间:2015/4/6 13:54:00 -- 回复 ybil 出现了 编译错误
|
-- 作者:zuyong -- 发布时间:2015/4/6 14:03:00 -- 动态加载了一个外部源中的表后,用DataTables.Contains 还是找不到该表,下面的代码错在哪里? If DataTables.Contains("ht" & dr("合同编号")) = False Then \'如果已加载的表中不存在项目表 Dim lst2 As List(Of String) \'定义一个字符型集合 lst2 = Connections("我的外部源").GetTableNames \'将远程数据库的所有表名称返回到字符串集合 If lst2.Contains("ht" & dr("合同编号"))= True Then \'如果后台数据库存在该表 DataTables.Load("ht" & dr("合同编号"))
\'动态加载该表 这条代码能动态加载吗?为什么还是用DataTables.Contains找不到 End If End If 如果想直接删除外部源中的一个表,用什么代码? Dim Builder As New ADOXBuilder Builder.Open() Builder.DeleteTable("ht" & dr("合同编号")) \'这个行吗? [此贴子已经被作者于2015/4/6 14:05:27编辑过]
|
-- 作者:Bin -- 发布时间:2015/4/7 9:19:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=66424 |