Foxtable(狐表)用户栏目专家坐堂 → 关于一个文件中多个表动态加载数据问题请教


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

主题:关于一个文件中多个表动态加载数据问题请教

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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
关于一个文件中多个表动态加载数据问题请教  发帖心情 Post By:2009/7/11 16:48:00 [只看该作者]

表A中的窗口AfterLoad事件代码
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT 部门,生产任务单号 From 部门计划"
dt = cmd.ExecuteReader()
Dim t As WinForm.TreeView = e.Form.Controls("TreeView1")
t.BuildDataTree(dt, "","部门", "生产任务单号")

保存窗口后,无问题,可以动态加载

表B的窗口AfterLoad事件代码
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT 工段,生产任务单号 From 车间工段计划"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildDataTree(dt, "","工段", "生产任务单号")

保存后,打开窗口,提示


图片点击可在新窗口打开查看此主题相关图片如下:tt截图未命名.bmp
图片点击可在新窗口打开查看

两个表的数据原文件名是 部门与工段计划.mdb

文件项目BeforeLoadOuterTable事件中代码是

If e.DataTableName = "车间工段计划" Then
  e.SelectString = "Select * From {车间工段计划} where 生产任务单号 = 'a'"
End If

If e.DataTableName = "部门计划" Then
 e.SelectString = "Select * From {部门计划} where 生产任务单号 = 'a'"
End If



所有代码都是依照狐爸的例子试用的,
为什么表A的窗口又可以,去表B中设置,同样的代码,数据原也一样,只是数据表不一样就提示错误呢?

谁知道?说说杂回事儿?


 回到顶部
美女呀,离线,留言给我吧!
yangming
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/7/11 16:56:00 [只看该作者]

你有工段这一列吗?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/7/11 17:31:00 [只看该作者]

以下是引用卟离卟弃在2009-7-11 16:48:00的发言:
表B的窗口AfterLoad事件代码
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT 工段,生产任务单号 From 车间工段计划"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildDataTree(dt, "","工段", "生产任务单号")


你试试这个代码:

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT 工段,生产任务单号 From 车间工段计划"
dt = cmd.ExecuteReader()
If dt Is Nothing Then Messagebox.show("111")
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildDataTree(dt, "","工段", "生产任务单号")

看看有没有提示“111”

[此贴子已经被作者于2009-7-11 17:31:36编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2009/7/13 8:10:00 [只看该作者]

老兄,有111.............

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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2009/7/13 8:11:00 [只看该作者]

杨姐
有那一列..


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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/7/13 8:35:00 [只看该作者]

检查一下目录树的名称正确否。

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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2009/7/13 10:23:00 [只看该作者]

看过,目录树是正确的.

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/7/13 10:47:00 [只看该作者]

口说无凭,上传示例


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/7/13 10:51:00 [只看该作者]

以下是引用卟离卟弃在2009-7-13 8:10:00的发言:
老兄,有111.............

提示111 说明没有生成 DataTable
你在杂项里面选择外部数据源,执行下面的SQL
SELECT DISTINCT 部门,生产任务单号 From 部门计划

看结果是不是正确的


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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2009/7/13 10:55:00 [只看该作者]

解决了,是数据库连接名称问题的错误...
原数据库名称是"车间数据文件"
我连接数据库的时候取的名称"部门计划"

两个动态加载数据窗口中其实都是用同一个数据源,只是数据表不一样,所以代码应该是这样
表A中的窗口AfterLoad事件代码
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT 部门,生产任务单号 From 部门计划"
dt = cmd.ExecuteReader()
Dim t As WinForm.TreeView = e.Form.Controls("TreeView1")
t.BuildDataTree(dt, "","部门", "生产任务单号")

保存窗口后,无问题,可以动态加载

表B的窗口AfterLoad事件代码
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT 工段,生产任务单号 From 车间工段计划"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildDataTree(dt, "","工段", "生产任务单号")

这样就无问题了




 回到顶部
总数 12 1 2 下一页