Foxtable(狐表)用户栏目专家坐堂 → 关联表问题搞了三天.都没搞明白,有请老师指点迷津...


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

主题:关联表问题搞了三天.都没搞明白,有请老师指点迷津...

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
关联表问题搞了三天.都没搞明白,有请老师指点迷津...  发帖心情 Post By:2009/1/10 22:46:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:关联测试.table


如图所示三处,想得我白头发都多了好几根也没想出个办法,麻烦老师们指教..图片点击可在新窗口打开查看

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

问题1,如何实现选择某项目时,判断该项目关联表是否有空行,有则返回,无则自动增加行.
我在ComboBox1控件的Valuechanged这样写报错,注:原版是外部数据.

Dim cmd As SQLCommand
这里原有连接语句
Dim ls As DataTable
Dim dt As integer
Dim dr As string = e.form.controls("ComboBox1").Value
cmd.commandtext = "select 第三列 From [表B] where 第一列 = '"& dr &"' and 第二列 = ''"
ls = cmd.ExecuteReader()
dt = ls.datarows.count

if dt > 0 Then
Return
Else
  Tables("表A.表B").AddNew()
end if


问题二:如何在指定列(如第八列)录入完数据按下回车键自动增加新行?帮助里都是到最后一行....才能新增..郁闷.



问题三:如何在主窗口加载时不显示当前主表选择行(一般为第一行)关联表数据?直到选择ComboBox1下拉选项时才出现相应关联表数据?




[此贴子已经被作者于2009-1-11 8:41:14编辑过]

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/1/11 8:45:00 [只看该作者]

图片点击可在新窗口打开查看天天泡论坛..早上起来顶一顶...

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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19223 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2009/1/11 8:53:00 [只看该作者]

第二列 = '',要写成 第二列 is null,其他自己再测试

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/1/11 9:28:00 [只看该作者]

第二个问题有个思路,不知道是否可行?不过输入焦点移动那一行我不懂写...

在表AfterEdit事件中加入:
If e.Col.name=第九列 Then
把输入焦点移到最后一个单元格
Sendkeys.send({ENTER})

第一个问题变得好奇怪....下面的代码在ComboBox1的ValueChanged里运行得好好的,把它们转到某个按钮Clik中就报错,奇怪....难道是红色部分出错?


Dim cmd As SQLCommand
cmd.Con nection Name= "zygl"
Dim ls As DataTable
Dim dt As integer
Dim dr As string = e.form.controls("TextBox6").Value
cmd.commandtext = "select 项目 From [长嘱] where 住院ID = '"& dr &"'and 单价 is null"
ls = cmd.ExecuteReader()
dt = ls.datarows.count

if dt = 0 Then
  Tables("住院登记.长嘱").AddNew()
end if

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

[此贴子已经被作者于2009-1-11 10:20:45编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/1/11 20:59:00 [只看该作者]

错在这里:

cmd.Con nection Name= "zygl"

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/1/11 21:54:00 [只看该作者]

以下是引用czy在2009-1-11 20:59:00的发言:
错在这里:

cmd.Con nection Name= "zygl"

图片点击可在新窗口打开查看那里是故意的..不打空格,论坛显示不到...


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/1/11 23:26:00 [只看该作者]

不好意思,我没打开你的文件。

Dim cmd As New SQLCommand
Dim ls As DataTable
Dim dt As integer
Dim dr As string = e.form.controls("ComboBox1").Value
cmd.commandtext = "select 第三列 From {表B} where 第一列 = '"& dr &"' and 第二列 is null"
ls = cmd.ExecuteReader()
dt = ls.datarows.count

if dt > 0 Then
Return
Else
  Tables("表A.表B").AddNew()
end if


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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/1/12 9:35:00 [只看该作者]

再次绝倒.....Dim cmd As New SQLCommand

另问,select 第三列 From {表B} where 第一列 = '"& dr &"' and 第二列 is null
其中的 {表B} 跟[表B]有什么不同?什么时候用[]什么时候用{}?


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


加好友 发短信 好心情 一级勋章
等级:超级版主 帖子:715 积分:5564 威望:0 精华:1 注册:2008/8/31 20:45:00
  发帖心情 Post By:2009/1/12 9:47:00 [只看该作者]

以下是引用菜鸟foxtable在2009-1-12 9:35:00的发言:
再次绝倒.....Dim cmd As New SQLCommand

另问,select 第三列 From {表B} where 第一列 = '"& dr &"' and 第二列 is null
其中的 {表B} 跟[表B]有什么不同?什么时候用[]什么时候用{}?

如果是内部数据源,SQL语句中的表名必须用大括号括起来,外部数据源没有这个限制。


 回到顶部